Compare commits

...

2213 Commits

Author SHA1 Message Date
edgelessci
ad250ac78f
image: update locked rpms (#3742)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-06 10:29:53 +02:00
Moritz Sanft
819ec9a22c
ci: rename nixpkgs input (#3741)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2025-04-04 11:19:37 +02:00
Moritz Sanft
e5d22ebcaf
nix: boostrap "v2" tree (#3740)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2025-04-04 10:22:28 +02:00
renovate[bot]
0926b82a65
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20250331 (#3738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 08:37:49 +02:00
renovate[bot]
d742243cdc
deps: update Constellation containers (#3737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 08:27:22 +02:00
edgelessci
ae50f8b500
image: update measurements and image version (#3739)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-04 08:15:19 +02:00
renovate[bot]
ba0865706e
deps: update bazel (plugins) (#3675)
* deps: update bazel (plugins)

Co-Authored-By: Markus Rudy <mr@edgeless.systems>

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-03 09:47:12 +02:00
renovate[bot]
1079fba200
deps: update dependency DeterminateSystems/nix-installer to v3.2.1 (#3736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 07:37:51 +02:00
Moritz Sanft
fa21c55f5d
dev-docs: Add guide on publishing marketplace images (#3734)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2025-04-02 16:21:19 +02:00
renovate[bot]
88ca92509c
deps: update Go dependencies (#3735)
* deps: update Go dependencies

* deps: rollback go-tpm-tools

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-02 16:20:47 +02:00
renovate[bot]
b52639d2b8
deps: update bufbuild/buf to v1.51.0 (#3729)
* deps: update bufbuild/buf to v1.51.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-02 13:31:22 +02:00
renovate[bot]
ebc962ad68
deps: update Terraform dependencies (#3732)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 13:19:18 +02:00
renovate[bot]
5ab11ab996
deps: update dependency DeterminateSystems/nix-installer to v3.2.0 (#3730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 08:59:01 +02:00
edgelessci
c4d8fe3741
image: update measurements and image version (#3731)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-02 08:29:51 +02:00
edgelessci
700eb60614
Post v2.22.0 release updates to main (#3717)
* docs: release 2.22

* chore: update version.txt to v2.23.0-pre

* chore: update CI for v2.22.0

---------

Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-01 10:52:26 +02:00
renovate[bot]
810c8448d9
deps: update fedora:40 Docker digest to 3c86d25 (#3722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 10:40:11 +02:00
renovate[bot]
3e6777c3e5
deps: update dependency rules_python to v1.3.0 (#3723)
* deps: update dependency rules_python to v1.3.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-04-01 10:38:51 +02:00
edgelessci
7b550bbf09
image: update locked rpms (#3727)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-30 19:29:55 +02:00
renovate[bot]
accfd4e041
deps: update ghcr.io/edgelesssys/constellation/s3proxy Docker tag to v2.22.0 (#3719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 21:34:47 +01:00
renovate[bot]
67efbd43a5
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20250324 (#3720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 21:34:32 +01:00
renovate[bot]
4dab6759bb
deps: update Terraform dependencies (#3716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 21:34:15 +01:00
Markus Rudy
5a1b7b7944
ci: exclude go vulns that don't affect library usage (#3721) 2025-03-27 10:23:30 +01:00
Leonard Cohnen
be146cdb22
ci: bump slsa verifier (#3718) 2025-03-26 21:53:32 +01:00
edgelessci
f5cd6a9d0b
image: update measurements and image version (#3713)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-26 19:31:53 +01:00
renovate[bot]
18e67e7deb
deps: update golangci/golangci-lint to v2.0.2 (#3715)
* deps: update golangci/golangci-lint to v2.0.2

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-26 19:31:00 +01:00
Leonard Cohnen
66815a4a47
gcp: support projects with no default permissions (#3656)
* helm/gcp: use service account in operator and joinservice

* helm: format operator testdata

* terraform/iam: create additional service account for VMs

This service account is used in the following commits and is attached to the VMs

* config: pass VM service account from iam create to cluster create via config

* cli/iamcreate: limit name prefix length

* docs: add minimal gcp IAM permissions
2025-03-25 14:13:38 +01:00
renovate[bot]
83e08e3e37
deps: update golangci/golangci-lint to v2.0.1 (#3712)
* deps: update golangci/golangci-lint to v2.0.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-25 12:34:08 +01:00
miampf
3cc930fa97
feat: implement RFC 16 to allow emergency node access (#3557) 2025-03-25 11:28:48 +00:00
renovate[bot]
c7369fa2a7
deps: update GitHub action dependencies (#3711)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-25 11:59:07 +01:00
renovate[bot]
ec46c97d4c
deps: update golangci/golangci-lint to v2 (major) (#3709)
* deps: update golangci/golangci-lint to v2

* deps: tidy all modules

* ci: migrate golangci-lint config to v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2025-03-25 11:30:13 +01:00
renovate[bot]
4a9d265579
deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.12.0 (#3706)
* deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.12.0

* deps: tidy all modules

* deps: make renovate ignore generated AWS LB chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2025-03-24 17:46:41 +01:00
renovate[bot]
906e93b95c
deps: update dependency rules_pkg to v1.1.0 (#3705)
* deps: update dependency rules_pkg to v1.1.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2025-03-24 15:41:05 +01:00
renovate[bot]
41396b21e5
deps: update dependency numpy to v2.2.4 (#3708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 14:30:14 +01:00
Markus Rudy
ddff16badb
deps: bump github.com/containerd/containerd to v1.7.27 (#3707) 2025-03-24 14:23:21 +01:00
renovate[bot]
53c3d12feb
deps: update golangci/golangci-lint to v1.64.8 (#3704)
* deps: update golangci/golangci-lint to v1.64.8

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-24 09:53:07 +01:00
edgelessci
e001a8ec8f
image: update locked rpms (#3703)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-23 18:08:35 +01:00
edgelessci
be9f78cdc7
image: update measurements and image version (#3701)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-23 18:08:08 +01:00
renovate[bot]
3ccc7910aa
deps: update dependency kubernetes-sigs/cri-tools to v1.32.0 (#3682)
* deps: update dependency kubernetes-sigs/cri-tools to v1.32.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-23 18:07:54 +01:00
renovate[bot]
f4840de69e
deps: update module github.com/golang-jwt/jwt/v5 to v5.2.2 [SECURITY] (#3702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-23 18:07:43 +01:00
renovate[bot]
b42f9dfb4f
deps: update K8s constrained GCP versions (#3673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-23 18:07:33 +01:00
edgelessci
b0a22270f8
image: update locked rpms (#3698)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-23 18:06:48 +01:00
renovate[bot]
a67818f447
deps: update Kubernetes versions (#3696)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-23 18:06:34 +01:00
edgelessci
0de14a2e60
image: update measurements and image version (#3700)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-23 18:06:19 +01:00
Daniel Weiße
f64dc96e7a
ci: add k8s v1.31 and remove v1.28 from stackit e2e test (#3699)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2025-03-17 10:34:34 +01:00
renovate[bot]
7f52752cbd
deps: update bufbuild/buf to v1.50.1 (#3697)
* deps: update bufbuild/buf to v1.50.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-14 10:49:34 +01:00
renovate[bot]
dbb7c5b0fd
deps: update Python dependencies (#3692)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-14 10:02:56 +01:00
edgelessci
cf2e83c723
image: update measurements and image version (#3695)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-14 08:00:42 +01:00
Felix Schuster
df06022e9e
Make PCRs part of payload in Security Overview (#3480)
* Make RTMRs part of "aux data"

* Introduce Sig-TPM
2025-03-12 15:18:13 +01:00
edgelessci
eb9dc01425
image: update measurements and image version (#3693)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-12 08:46:29 +01:00
3u13r
368b52a4dd
terraform: remove legacy infrastructure modules (#3691) 2025-03-10 13:21:19 +01:00
renovate[bot]
b08bfd327d
deps: update K8s constrained Azure versions (#3688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-10 13:15:30 +01:00
edgelessci
fa8b0bab79
image: update locked rpms (#3690)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-10 08:07:56 +01:00
edgelessci
e5d1aab7d8
chore: update CI for v2.21.1 (#3686)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-07 09:34:08 +01:00
edgelessci
39bca12491
image: update measurements and image version (#3687)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-07 08:25:46 +01:00
renovate[bot]
4b9b101378
deps: update module github.com/docker/docker to v28 (#3685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 08:25:27 +01:00
Moritz Sanft
a491cac57a
terraform: update AWS LB permissions (#3681)
* bazel: add download rules for AWS LB policy

* docs: add migration notice

* terraform: re-download lb policy
2025-03-06 16:44:49 +01:00
renovate[bot]
a1e24742a9
deps: update dependency DeterminateSystems/nix-installer to v3 (#3684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 16:16:40 +01:00
renovate[bot]
b4b6df2676
deps: update registry.k8s.io/provider-os/openstack-cloud-controller-manager Docker tag to v1.32.0 (#3683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 15:36:18 +01:00
renovate[bot]
f56693c139
deps: update bazel (modules) (#3680)
* deps: update bazel (modules)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-06 13:32:55 +01:00
renovate[bot]
f66c03e0c8
deps: update dependency DeterminateSystems/nix-installer to v0.38.1 (#3640)
* deps: update dependency DeterminateSystems/nix-installer to v0.38.1

* ci: pin nix version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2025-03-06 12:32:56 +01:00
miampf
ddbcda848b
e2e: measurements reproducibility test for images (#3654) 2025-03-06 10:50:43 +00:00
3u13r
fab1c8e149
cli: re-introduce iam upgrade check (#3657) 2025-03-06 11:33:42 +01:00
renovate[bot]
494eb265c6
deps: update registry.k8s.io/sig-storage/snapshot-controller Docker tag to v8.2.1 (#3679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 11:17:29 +01:00
renovate[bot]
810a6ecac5
deps: update golangci/golangci-lint to v1.64.6 (#3678)
* deps: update golangci/golangci-lint to v1.64.6

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-05 15:51:14 +01:00
edgelessci
08f740d5db
image: update measurements and image version (#3677)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-05 14:36:50 +01:00
renovate[bot]
84075ca052
deps: update Go dependencies (#3676)
* deps: update Go dependencies
* deps: keep google/go-tpm-tools at v0.4.4
* deps: upgrade rules_go to v0.53.0
* deps: re-generate files
* deps: upgrade go-jose/v3 to v3.0.4

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 14:01:53 +01:00
renovate[bot]
7fdece4d6c
deps: update K8s constrained Azure versions (#3669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 12:46:12 +01:00
edgelessci
6225d910de
Post v2.21.0 release updates to main (#3670)
* docs: release 2.21

* chore: update version.txt to v2.22.0-pre

* chore: update CI for v2.21.0

---------

Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-04 12:45:58 +01:00
Moritz Sanft
44d20385d2
ci: replace tenv linter with usetesting (#3674) 2025-03-04 12:45:36 +01:00
renovate[bot]
c5b9208472
deps: update ghcr.io/edgelesssys/cloud-provider-gcp Docker tag to v30.1.4 (#3671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 12:45:24 +01:00
edgelessci
ca6cc22beb
image: update locked rpms (#3672)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-03-04 08:47:58 +01:00
renovate[bot]
60663ebe75
deps: update K8s constrained AWS versions (#3659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 08:47:19 +01:00
renovate[bot]
60604fdc5e
deps: update Terraform dependencies (#3665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 09:38:28 +01:00
renovate[bot]
e95c60c3fc
deps: update Kubernetes versions (#3660)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-28 09:38:00 +01:00
edgelessci
10e39c4d7c
image: update measurements and image version (#3667)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-28 08:51:45 +01:00
renovate[bot]
9e1578aca1
deps: update golangci/golangci-lint to v1.64.5 (#3666)
* deps: update golangci/golangci-lint to v1.64.5

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-26 15:38:23 +01:00
renovate[bot]
0ccaa00026
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20250225 (#3639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 14:34:41 +01:00
Markus Rudy
473b04abd5
versions: add k8s 1.31, remove k8s 1.28 (#3396)
* constellation-node-operator: upgrade control plane nodes first (#3663)

* versions: add k8s 1.31, remove k8s 1.28

* e2e: set default k8s version for daily to 1.30

* e2e: remove defaults for required arguments

* versions: move 1.31 to the end of the list

* kubernetes: set feature gate ControlPlaneKubeletLocalMode

Co-Authored-By: Leonard Cohnen <lc@edgeless.systems>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2025-02-26 14:07:42 +01:00
edgelessci
fb609b23b0
image: update measurements and image version (#3664)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-26 08:16:57 +01:00
Moritz Sanft
d97e60fea5
dev-docs: fix attestationconfigapi instructions (#3661) 2025-02-24 08:58:57 +01:00
edgelessci
144d5e9d06
image: update locked rpms (#3662)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-23 10:56:58 +01:00
renovate[bot]
a65176ee06
deps: update K8s constrained Azure versions (#3646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 12:36:38 +01:00
edgelessci
159e60d8bb
image: update measurements and image version (#3658)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-21 12:36:20 +01:00
renovate[bot]
148cb1e150
deps: update Terraform dependencies (#3637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 11:33:25 +01:00
3u13r
99a81cd246
versionsapi: canonicalize ref in version constructors (#3652)
* versionsapi: canonicalize ref in version constructors

Co-authored-by: 3u13r <lc@edgeless.systems>
Signed-off-by: Paul Meyer <katexochen0@gmail.com>

* hack/cli-k8s-compat: canonicalize ref

---------

Signed-off-by: Paul Meyer <katexochen0@gmail.com>
Co-authored-by: Paul Meyer <katexochen0@gmail.com>
2025-02-19 11:41:10 +01:00
edgelessci
f8a95de174
image: update measurements and image version (#3655)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-19 08:28:08 +01:00
Markus Rudy
758191ad42
operator: bump controller-gen version (#3653)
* operator: bump controller-gen version

This bump the controller gen version and also adjusts the generate commands (back to the original ones). This allows correct generation of CRDs and go code.

---------

Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2025-02-18 11:06:56 +01:00
Moritz Sanft
28ae7de4ea
ci: supply STACKIT credentials to cleanup job (#3651) 2025-02-17 15:27:51 +01:00
edgelessci
d208251df1
image: update locked rpms (#3650)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-17 08:28:12 +01:00
renovate[bot]
0abd06053c
deps: update module k8s.io/kubernetes to v1.32.2 [SECURITY] (#3648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-14 09:16:50 +01:00
edgelessci
b204b3c59b
image: update measurements and image version (#3649)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-14 08:35:50 +01:00
edgelessci
df2383ab09
chore: update CI for v2.20.1 (#3647)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-13 20:04:58 +01:00
renovate[bot]
28e92b9732
deps: update dependency rules_cc to v0.1.1 (#3643)
* deps: update dependency rules_cc to v0.1.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-13 10:23:24 +01:00
Thomas Tendyck
1551f8884e attestation: update go-azguestattestation to fix MAA PCR11 bug 2025-02-12 10:42:50 +01:00
edgelessci
c39ecc8a82
image: update measurements and image version (#3645)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-12 09:42:02 +01:00
edgelessci
571c81cfd5
image: update measurements and image version (#3641)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-07 13:38:12 +01:00
Daniel Weiße
4d79ce2773
deps: bump Go to v1.23.6 (#3642)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2025-02-07 10:15:14 +01:00
renovate[bot]
cb77e7bb0d
deps: update dependency asciinema-player to v3.9.0 (#3635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 12:40:38 +01:00
renovate[bot]
3fa29a5ee8
deps: update Go dependencies (#3631)
* deps: update Go dependencies
* deps: fix dependency for go-control-plane/envoy
* Accept AGPL-3.0 for edgelesssys/go-tdx-qpl

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2025-02-06 11:07:06 +01:00
renovate[bot]
f81c357f51
deps: update Constellation containers (#3638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 08:03:14 +01:00
edgelessci
6d42d9b40e
image: update measurements and image version (#3636)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-02-05 08:29:26 +01:00
renovate[bot]
f41c7619e1
deps: update ubuntu:24.04 Docker digest to 7229784 (#3634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 10:02:41 +01:00
renovate[bot]
f1e30863c1
deps: update GitHub action dependencies (#3633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 08:27:37 +01:00
Moritz Sanft
245700ee54
helm: grant configmap watch permission to constellation-operator-controller-manager (#3632) 2025-02-03 20:31:37 +01:00
edgelessci
76b642baf9
image: update locked rpms (#3630) 2025-02-02 10:02:35 +01:00
edgelessci
ad364f2089
image: update measurements and image version (#3628)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-31 08:31:34 +01:00
renovate[bot]
681a341b8f
deps: update bazel (plugins) (#3598)
* deps: update bazel (plugins)

* deps: fix renovate's attempt

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2025-01-30 16:36:45 +01:00
renovate[bot]
0e4f3a0716
deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.11.0 (#3611)
* deps: update aws-load-balancer-controller Helm chart

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-30 15:54:07 +01:00
miampf
706d1dff15
cli: add ssh command to securely connect with nodes over ssh (#3568) 2025-01-30 12:08:59 +00:00
renovate[bot]
e6048e093b
deps: update dependency aspect_bazel_lib to v2.13.0 (#3627)
* deps: update dependency aspect_bazel_lib to v2.13.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-30 11:45:03 +01:00
renovate[bot]
1faf2dd1b8
deps: update dependency gazelle to v0.42.0 (#3626)
* deps: update dependency gazelle to v0.42.0

* deps: tidy all modules

* ci: ignore GO-2025-3408

The vulnerability does not have a patch and is a denial-of-service.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2025-01-30 11:00:18 +01:00
renovate[bot]
bb994d5a01
deps: update Go dependencies (#3623)
* deps: update Go dependencies

* deps: tidy all modules

* keep cloud.google.com/go/storage at v1.49.0

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2025-01-29 16:31:16 +01:00
edgelessci
7242a1eb74
image: update measurements and image version (#3625)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-29 16:31:07 +01:00
miampf
8da08bec8d
e2e: downgrade vale version to 3.9.3 (#3624) 2025-01-28 13:12:50 +00:00
renovate[bot]
8e8c44e35a
deps: update dependency buildifier_prebuilt to v8.0.1 (#3621)
* deps: update dependency buildifier_prebuilt to v8.0.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-24 13:36:58 +01:00
renovate[bot]
148b82e32c
deps: update dependency prism-react-renderer to v2.4.1 (#3619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 08:06:24 +01:00
edgelessci
e44adf85d4
image: update measurements and image version (#3620)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-24 08:06:12 +01:00
renovate[bot]
3af498fbfe
deps: update dependency numpy to v2.2.2 (#3618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 12:26:18 +01:00
renovate[bot]
bda3d802dc
deps: update dependency asciinema-player to v3.8.2 (#3616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 12:21:19 +01:00
renovate[bot]
808631f530
deps: update dependency buildifier_prebuilt to v8 (#3615)
* deps: update dependency buildifier_prebuilt to v8

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-22 11:53:19 +01:00
renovate[bot]
3f702ecda9
deps: update Terraform google to v6.17.0 (#3614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 08:49:30 +01:00
renovate[bot]
12cfd7006b
deps: update registry.k8s.io/sig-storage/snapshot-controller Docker tag to v8.2.0 (#3612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 08:27:02 +01:00
edgelessci
caa80783eb
image: update measurements and image version (#3613)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-22 08:13:32 +01:00
renovate[bot]
501d1779ed
deps: update Go dependencies (#3603)
* deps: update Go dependencies
* hold back cloud.google.com/go/storage dependency
* keep fork replacement at consistent version

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2025-01-21 16:23:10 +01:00
Daniel Weiße
bea2f33efc
renovate: reformat config file for json5 (#3610)
* renovate: include replace directives in Go deps upgrade
* renovate: replace deprecated regexManagers with customManagers
* renovate: rewrite config in proper json5

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2025-01-21 13:26:42 +01:00
renovate[bot]
92d7fc5385
deps: update module k8s.io/cri-client to v0.32.1 (#3608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 11:03:48 +01:00
renovate[bot]
e9a6513346
deps: update actions/setup-go action to v5.3.0 (#3605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 10:28:03 +01:00
renovate[bot]
ebbe61727c
deps: update dependency DeterminateSystems/nix-installer to v0.34.0 (#3607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 10:06:09 +01:00
renovate[bot]
44e898e187
deps: update Terraform dependencies (#3604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 10:05:01 +01:00
renovate[bot]
f048ebb8e8
deps: update rhysd/actionlint to v1.7.7 (#3602)
* deps: update rhysd/actionlint to v1.7.7

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-21 10:04:32 +01:00
renovate[bot]
f789b8efc7
deps: update bufbuild/buf to v1.50.0 (#3606)
* deps: update bufbuild/buf to v1.50.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-21 10:04:07 +01:00
renovate[bot]
c6db8bd46b
deps: update aquasecurity/tfsec to v1.28.13 (#3600)
* deps: update aquasecurity/tfsec to v1.28.13

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-21 09:05:04 +01:00
renovate[bot]
2216098a9b
deps: update registry.k8s.io/sig-storage/snapshot-validation-webhook Docker tag to v8.1.1 (#3601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 08:51:04 +01:00
renovate[bot]
679edd79d4
deps: update Go dependencies (#3586)
* deps: update Go dependencies

* keep cloud.google.com/go/storage at v1.49.0

This is required to avoid issues with a broken
google.golang.org/grpc/stats/opentelemetry import
See https://github.com/googleapis/google-cloud-go/issues/11455

* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-20 16:15:42 +01:00
renovate[bot]
22d093cc6f
deps: update bazel (core) (#3581)
* deps: update bazel (core)

* bazel: depset -> list

To comply with some breaking changes in rules_go v0.51, we explicitly
need to type-cast the depsets to lists here.

* bazel: migrate deprecated GoLibrary usage

In rules_go v0.51.0, `GoLibrary` was deprecated and replaced by
`GoInfo`. This adjusts our `protoc-gen-go` rule to use the new `GoInfo`.

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-20 15:17:05 +01:00
Daniel Weiße
53e937522f
dependencies: bump Go to v1.23.5 (#3599)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2025-01-20 11:53:55 +01:00
Daniel Weiße
40754753a2
dependencies: drop google/go-sev-guest fork (#3595)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2025-01-20 10:39:14 +01:00
renovate[bot]
56b061e84b
deps: update kubernetes packages (#3589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 10:01:17 +01:00
renovate[bot]
576add30d1
deps: update ubuntu Docker tag to v24 (#3597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 09:45:03 +01:00
renovate[bot]
c24e149b12
deps: update dependency containernetworking/plugins to v1.6.2 (#3524)
* deps: update dependency containernetworking/plugins to v1.6.2

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-20 09:10:44 +01:00
edgelessci
3a898e9cff
image: update locked rpms (#3594)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-20 09:07:00 +01:00
renovate[bot]
b996a4cbae
deps: update docusaurus monorepo to v3.7.0 (#3591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 17:08:33 +01:00
renovate[bot]
9a969548e4
deps: update Python dependencies (#3592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 17:08:05 +01:00
renovate[bot]
cef2436065
deps: update golangci/golangci-lint to v1.63.4 (#3588)
* deps: update golangci/golangci-lint to v1.63.4

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-17 15:15:02 +01:00
renovate[bot]
188e51bba1
deps: update Python dependencies (#3590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 15:05:36 +01:00
renovate[bot]
4cffde5036
deps: update rhysd/actionlint to v1.7.6 (#3584)
* deps: update rhysd/actionlint to v1.7.6

* deps: tidy all modules

* Update macos-12 runners to macos-latest

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2025-01-17 11:53:24 +01:00
renovate[bot]
405d0c6154
deps: update bazel (modules) (#3582)
* deps: update bazel (modules)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-17 10:43:07 +01:00
renovate[bot]
1459ab96fe
deps: update GitHub action dependencies (#3585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 09:58:24 +01:00
Moritz Sanft
6ba47d5634
ci: allow unrestricted user namespaces in image builds (#3587)
Since Ubuntu 23.10, creating namespaces, e.g. via `unshare`, requires
privileges. Since `unshare` is used by `mkosi` in our image build
pipeline, we need to re-enable them explicitly here before building the
image, aligning with the behavior before Ubuntu 23.10.
2025-01-17 09:36:48 +01:00
renovate[bot]
0272e7dd15
deps: update ghcr.io/edgelesssys/cloud-provider-gcp Docker tag to v30.1.4 (#3579)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 15:29:39 +01:00
renovate[bot]
99c8a1eb11
deps: update bufbuild/buf to v1.49.0 (#3583)
* deps: update bufbuild/buf to v1.49.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-16 14:39:20 +01:00
renovate[bot]
e3f29ecf4d
deps: update Kubernetes versions (#3578)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-16 14:22:02 +01:00
renovate[bot]
f10376fd44
deps: update Terraform dependencies (#3580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 14:21:35 +01:00
renovate[bot]
e8771e2dab
deps: update K8s constrained AWS versions (#3561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 13:58:21 +01:00
renovate[bot]
d9ab8c76e0
deps: update Terraform openstack to v3 (#3539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 12:47:29 +01:00
edgelessci
126dbd69d9
image: update measurements and image version (#3577)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-15 08:07:44 +01:00
miampf
0d2bedbca3
fix(docs): reference up to date longhorn guide (#3576) 2025-01-14 16:07:19 +01:00
miampf
2fad395bb5
docs(image): Add section for adding new packages (#3575) 2025-01-14 15:46:19 +01:00
renovate[bot]
2ba6b66cee
deps: update Kubernetes versions (#3574)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-14 12:30:12 +01:00
Moritz Sanft
9f59990c7d
renovate: match dl.k8s.io for K8s releases (#3573)
We have a version mismatch in our Kubernetes (e.g. `kubadm`) versions
and the versions the CLI expects to have right now, as the Renovate rule
didn't match the `dl.k8s.io` URLs introduced in c1714aaf92.
This fixes the issue by adjusting the Regex. Updates should work again
when the versions are back in sync.
2025-01-14 11:41:04 +01:00
edgelessci
91ffc68189
image: update locked rpms (#3572)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-12 10:55:56 +01:00
edgelessci
094f5e87a6
image: update measurements and image version (#3571)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-10 08:03:42 +01:00
edgelessci
40e25c3046
image: update measurements and image version (#3569)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-08 08:40:44 +01:00
edgelessci
88f26bc161
image: update measurements and image version (#3566)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-06 10:22:25 +01:00
edgelessci
7dd743b69e
image: update locked rpms (#3567)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2025-01-05 15:50:36 +01:00
edgelessci
19e54a0174
image: update locked rpms (#3564)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-29 13:22:19 +01:00
renovate[bot]
44612b1d93
deps: update Kubernetes versions (#3553)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-23 14:01:26 +01:00
edgelessci
3d9d386538
image: update locked rpms (#3560)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-23 13:59:59 +01:00
Moritz Sanft
fcf778e73c
ci: only write STACKIT configuration if STACKIT test runs (#3559) 2024-12-20 10:05:48 +01:00
Moritz Sanft
c467ff603b
ci: enable STACKIT e2e tests (#3556) 2024-12-19 19:18:09 +01:00
Markus Rudy
50ab77e37a
image: include files from git reproducibly (#3555) 2024-12-19 14:58:47 +01:00
edgelessci
ba0b2521ab
image: update measurements and image version (#3554)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-18 08:38:20 +01:00
Paul Meyer
abe54a2f7a deps: update go-sev-guest to include fix for badram platform info
Signed-off-by: Paul Meyer <katexochen0@gmail.com>
2024-12-16 11:16:06 +01:00
edgelessci
4b4afffee7
image: update locked rpms (#3551)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-15 18:15:49 +01:00
renovate[bot]
1b050a636f
deps: update mikepenz/action-junit-report action to v5 (#3550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 08:50:28 +01:00
renovate[bot]
8496b4ce46
deps: update dependency DeterminateSystems/nix-installer to v0.32.2 (#3547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 08:25:52 +01:00
edgelessci
2da6c7d911
image: update measurements and image version (#3549)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-13 08:16:03 +01:00
renovate[bot]
2da0ed6da0
deps: update GitHub action dependencies (#3548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 08:12:59 +01:00
Moritz Sanft
1495a7f6dd
docs: correct STACKIT IDs (#3545)
We got OpenStack and STACKIT IDs mixed up in our documentation previously. The OpenStack project ID is required in the `clouds.yaml` file, while the STACKIT project ID is required in the Constellation config. This fixes the warning for the OpenStack project ID in `clouds.yaml`, and adds an additional warning for the STACKIT project ID in the configuration section.
2024-12-12 09:45:24 +01:00
renovate[bot]
7d0aca054b
deps: update module golang.org/x/crypto to v0.31.0 [SECURITY] (#3546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 09:17:21 +01:00
Moritz Sanft
be1deb7d4b
Revert "operator: use GCP REST API for instance templates (#3361)" (#3544)
This reverts commit effb086cd33129a3b4046419b4615b43d4380038.
2024-12-11 17:04:13 +01:00
Markus Rudy
37e21b2ff0
image: use uplosi from nixpkgs-unstable (#3543)
* image: correct sharing profile for Azure gallery

* nix: use uplosi from nixpkgs-unstable instead of GitHub
2024-12-11 11:51:58 +01:00
renovate[bot]
54878ddc56
deps: update bazel (modules) (major) (#3540)
* deps: update bazel (modules)

* deps: tidy all modules

* Copy private go_bin_for_host rule from `rules_go` to `/bazel/ci`

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-12-10 15:19:46 +01:00
Markus Rudy
7a7b6b3655
ci: exclude CoreDNS chart from renovate (#3541) 2024-12-10 13:00:00 +01:00
renovate[bot]
eb08fe1025
deps: update bufbuild/buf to v1.47.2 (#3532)
* deps: update bufbuild/buf to v1.47.2

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-10 11:54:05 +01:00
renovate[bot]
2596d7c1c2
deps: update dependency kubernetes-sigs/cri-tools to v1.32.0 (#3537)
* deps: update dependency kubernetes-sigs/cri-tools to v1.32.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-10 11:49:03 +01:00
renovate[bot]
64b395dba8
deps: update dependency DeterminateSystems/nix-installer to v0.32.1 (#3536)
* deps: update dependency DeterminateSystems/nix-installer to v0.32.1

* ci: run reproducible builds workflow on changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2024-12-10 09:26:05 +01:00
renovate[bot]
59b9d54c44
deps: update github/codeql-action action to v3.27.6 (#3535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 08:27:31 +01:00
Moritz Sanft
23354f23a5
flake: update to Bazel 7.4.1 (#3534) 2024-12-10 07:13:54 +01:00
renovate[bot]
cdb3e461bb
deps: update bazel (core) (#3531) 2024-12-10 07:13:44 +01:00
renovate[bot]
d346848aac
deps: update module k8s.io/endpointslice to v0.31.3 (#3529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 16:07:01 +01:00
renovate[bot]
469cae4658
deps: update bazel (plugins) (#3515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 16:06:28 +01:00
edgelessci
d7728fe3ba
image: update measurements and image version (#3528)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-09 09:00:04 +01:00
edgelessci
36f8c6d540
image: update locked rpms (#3530)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-09 08:46:25 +01:00
renovate[bot]
4bf607529b
deps: update module k8s.io/dynamic-resource-allocation to v0.31.3 (#3519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 08:38:20 +01:00
edgelessci
224e6e397c
image: update measurements and image version (#3527)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-04 10:49:53 +01:00
edgelessci
ab2782a2a2
Post v2.20.0 release updates to main (#3525)
* docs: release 2.20

* chore: update version.txt to v2.21.0-pre

* chore: update CI for v2.20.0

---------

Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-04 08:30:14 +01:00
Moritz Sanft
b03e671a62
constellation-node-operator: don't bail out on listing errors (#3522)
If the GCP project has scaling groups for which our checks can't be performed (which is the case for regional scaling groups, as they "don't exist" for the operator, if deployed in another region) . In that case, we should not bail out directly but go on with the next group. An error should only be thrown if there are no matching groups at all.
2024-12-03 22:44:38 +01:00
Moritz Sanft
0aa44a8221
versions: manually pull in new Kubernetes versions (#3523)
Some upgrade (possibly due to a too-eagerly merged PR) missed upgrading certain parts of the K8s versions. This fixes that by manually aligning to the newest version.
2024-12-03 16:41:04 +01:00
renovate[bot]
a1da8aa70c
deps: update kubernetes packages (#3517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 14:27:10 +01:00
renovate[bot]
fc0b3cc4a2
deps: update Kubernetes versions (#3516)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-02 14:26:59 +01:00
renovate[bot]
af4b15c365
deps: update K8s constrained GCP versions (#3446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 13:24:47 +01:00
renovate[bot]
53ae065329
deps: update golangci/golangci-lint to v1.62.2 (#3511)
* deps: update golangci/golangci-lint to v1.62.2

* deps: tidy all modules

* chore: align with new golangci-lint rules

golangci-lint added some linters in this version upgrade that require fixes on our side. These are done in this commit.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-12-02 13:24:34 +01:00
renovate[bot]
b652baa9c2
deps: update Terraform dependencies (#3510)
* deps: update Terraform dependencies

* Update terraform lock files

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Print module path for lockfile to be generated

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-12-02 12:04:15 +01:00
Daniel Weiße
6bad8b9839
ci: ensure autoscaling test actuallly waits for all Pods to be ready (#3514)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-12-02 11:29:46 +01:00
Daniel Weiße
5b1e3627c9
ci: run memory intensive check targets sequentially (#3513)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-12-02 09:25:45 +01:00
renovate[bot]
ed573c46d6
deps: update Go dependencies (#3509)
* deps: update Go dependencies

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-02 09:17:23 +01:00
renovate[bot]
6ebfa28e6d
deps: update Kubernetes versions (#3472)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-01 13:13:48 +01:00
edgelessci
283ea08437
image: update locked rpms (#3512)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-12-01 13:13:31 +01:00
Malte Poll
d8e9ed4f93
attestation: upgrade expected AWS SEV-SNP firmware (#3049)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-11-29 14:32:15 +01:00
renovate[bot]
2c318905a6
deps: update bazel (modules) (#3505)
* deps: update bazel (modules)

* deps: tidy all modules

* Ignore rules_python root warning

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-11-29 11:14:21 +01:00
edgelessci
17bfce7c11
image: update measurements and image version (#3508)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-29 08:49:05 +01:00
renovate[bot]
5977f0f5b1
deps: update rhysd/actionlint to v1.7.4 (#3506)
* deps: update rhysd/actionlint to v1.7.4

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-28 19:49:37 +01:00
renovate[bot]
b99bd53066
deps: update fedora:40 Docker digest to 7cdd2b4 (#3503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 16:15:39 +01:00
renovate[bot]
8f3d6c42f2
deps: update GitHub action dependencies (#3507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 16:15:26 +01:00
renovate[bot]
6dbb8ac56a
deps: update Terraform azuread to v3 (#3432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 15:48:29 +01:00
edgelessci
b99413a7cc
image: update locked rpms (#3493)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-28 15:46:22 +01:00
Markus Rudy
6d7f687609
image: allow autologin on TTY1 for STACKIT cloud (#3499) 2024-11-27 14:21:43 +01:00
Daniel Weiße
900fb3f88b
ci: automate manual post-release steps (#3498)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-11-27 08:52:54 +01:00
edgelessci
247df63d68
image: update measurements and image version (#3500)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-27 08:31:00 +01:00
Adrian Stobbe
143f683852
make post release more promiment (#3497) 2024-11-26 16:50:41 +01:00
Moritz Sanft
52372ae808
bootstrapper: only err if no control plane IPs available (#3496)
Previously we errored out of the entire join if retrieval
of either LB IP or control plane public IP failed. This resulted
in the entire "use either IP" logic not working as intended. This now
makes it log a warning only if the IP retrievals fail, and only errors
out of the join if no IP can be found at all.
2024-11-26 10:38:18 +01:00
renovate[bot]
fbdf1db053
deps: update bazel (plugins) (#3486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 09:27:43 +01:00
Daniel Weiße
871be80877
ci: update workflows to initialize upgrade tests with v2.19.3 (#3494)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-11-26 08:55:33 +01:00
Thomas Tendyck
b2e99af86c docs: refactor gtag 2024-11-22 17:19:51 +01:00
Daniel Weiße
f06830ec1a
deps: update google/go-sev-guest to v0.11.2-0.20241122022416-97a55186df28 (#3490)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-11-22 11:01:09 +01:00
edgelessci
4d65c7811b
image: update measurements and image version (#3491)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-22 09:18:26 +01:00
3u13r
4026752e89
docs: remove mentioning of Cilium's key rotation for IPSec since it does not apply to WireGuard (#3489) 2024-11-21 09:03:05 +01:00
Daniel Weiße
775ba22ab2
ci: run terraform apply in provider example test with timeout (#3482)
* Run terraform apply with timeouts
* Ignore lock file when running terraform destroy

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-11-21 08:32:22 +01:00
3u13r
521ff0d14c
Pin crane and npm dependencies (#3477)
* ci: pin crane dependency

* docs: pin npm dependencies

* deps: bump docusaurus

---------

Co-authored-by: Thomas Tendyck <tt@edgeless.systems>
2024-11-20 18:34:25 +01:00
Daniel Weiße
d874b5b5f4
deps: use forked google/go-sev-guest to support v3 AMD SEV-SNP attestation reports (#3487)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-11-20 09:39:51 +01:00
Markus Rudy
173ef26f70
ci: pin nix version to 2.25.2 (#3484)
* ci: pin nix version to 2.25.2

* bazel: update stale lock file
2024-11-20 09:09:20 +01:00
edgelessci
3b23d080d7
image: update measurements and image version (#3485)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-20 08:09:59 +01:00
Daniel Weiße
e0c95a34bb
ci: update workload identity provider url (#3483)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-11-18 16:36:32 +01:00
edgelessci
7cde5220c5
image: update locked rpms (#3481)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-18 08:16:45 +01:00
edgelessci
98cabeebd5
image: update measurements and image version (#3479)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-15 09:02:24 +01:00
edgelessci
26da32ed95
image: update measurements and image version (#3478)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-14 08:50:09 +01:00
Moritz Eckert
1c5fe3fe24
docs: update azure firmware with openhcl (#3473)
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-11-11 12:50:18 +01:00
Moritz Eckert
36024f20ae
docs: change wording contrast with comparison (#3476) 2024-11-11 12:45:30 +01:00
edgelessci
a8434a2415
image: update locked rpms (#3475)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-11 11:17:09 +01:00
renovate[bot]
d95a1de17f
deps: update ubuntu:22.04 Docker digest to 0e5e4a5 (#3447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 10:11:51 +01:00
edgelessci
000a7627fc
image: update measurements and image version (#3474)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-08 08:27:27 +01:00
Moritz Eckert
887b9c5fae
docs: stackit improve clouds.yaml description (#3470) 2024-11-07 09:30:41 +01:00
edgelessci
273ec733fb
image: update measurements and image version (#3471)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-06 08:28:21 +01:00
edgelessci
f2b919a563
image: update locked rpms (#3468)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-11-05 17:09:26 +01:00
Adrian Stobbe
e39d90ac1e
add migrate instructions to v2.19 docs (#3469) 2024-11-05 09:56:29 +01:00
Markus Rudy
960499a937
image: unset password reset date to ensure reprodicibility (#3466)
* image: unset password reset date
2024-11-04 14:53:35 +01:00
Adrian Stobbe
54058eed2a
terraform: fix security rule reconciliation on Azure (#3454)
* fix security rule reconciliation on azure
* fix simulated patch version upgrade
2024-11-04 08:59:16 +01:00
edgelessci
aa7d47ed5f
image: update measurements and image version (#3464)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-30 08:07:48 +01:00
Moritz Sanft
7458d0e892
deps: update terraform-provider-stackit (#3462) 2024-10-29 19:03:19 +01:00
Markus Rudy
bff8bce88f
docs: how to reproduce released artifacts (#3451)
* ci: test reproducability with different dependency installation methods

* nix: mitigate nix store optimisiation

* docs: reproducible builds

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* ci: upgrade ubuntu runners for reproducible builds

---------

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-10-29 14:04:59 +01:00
Mauritz Uphoff
9124691743
config: only allow confidential instances on stackit (#3463)
* cli: only allow confidential instances on stackit

* review changes
2024-10-29 12:35:01 +01:00
renovate[bot]
7dc38d9ff0
deps: update bazel (modules) (#3448)
* deps: update bazel (modules)

* Dont upgrade rules_python due to incompatibility with rules_pkg

* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-29 09:30:43 +01:00
Daniel Weiße
4b7cd84eaf
e2e-upgrade: guard function return values behind sync.WaitGroup (#3461)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-10-28 11:34:11 +01:00
Daniel Weiße
132218ac1e
ci: report failure in scheduled Terraform provider tests on cancel (#3460)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-10-28 10:46:24 +01:00
edgelessci
46fcbb5ee8
image: update locked rpms (#3459)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-28 09:55:07 +01:00
Adrian Stobbe
53caa86cb8
docs: clarify for Azure TDX with Terraform provider (#3449) 2024-10-25 14:00:44 +02:00
edgelessci
1ed1a627b3
image: update measurements and image version (#3458)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-25 11:08:47 +02:00
3u13r
2cd5b05b51
cli: also log applier debug messages to debug log file (#3457)
* cli: also log applier debug messages to debug log file

* cli: use debug logger instead of cliLogger
2024-10-24 15:00:51 +02:00
Markus Rudy
cbd8cc6976
ci: use GOPROXY fallbacks (#3456) 2024-10-23 16:45:22 +02:00
edgelessci
7977746785
image: update measurements and image version (#3455)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-23 09:38:20 +02:00
Markus Rudy
96ac7124e3
terraform: upgrade hashicorp/google to 6.7.0 (#3440) 2024-10-21 10:41:33 +02:00
edgelessci
0997ce2b98
docs: add release v2.19.0 (#3434)
Co-authored-by: msanft <58110325+msanft@users.noreply.github.com>
2024-10-21 09:59:30 +02:00
Moritz Sanft
44b2a758dd
chore: v2.19.0 post-release (#3445) 2024-10-21 09:59:04 +02:00
Moritz Sanft
dd385bce1f
helm: allow namespace handling for node-maintenance-operator (#3442) 2024-10-18 11:11:26 +02:00
edgelessci
e9203a2aee
image: update measurements and image version (#3441)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-18 08:08:45 +02:00
Moritz Sanft
0453f5b611
e2e: fix malicious join test (#3439) 2024-10-17 14:45:48 +02:00
Moritz Sanft
50df35438e
ci: fix artifact deletion (#3437)
GitHub seemingly now adds a newline to the output of the gh CLI, so we need to cut it before using it.
2024-10-17 09:37:59 +02:00
renovate[bot]
24af06b02f
deps: update Go dependencies (#3411)
* deps: update Go dependencies

* bazel: force Gazelle generation for xDS

xDS has an upstream set of build files that makes Gazelle consider their project a whole new Bazel project, which makes Gazelle not generate any build files, even though the upstream ones aren't valid.

See https://github.com/cncf/xds/issues/104.

* go: update cel.dev/expr for Bazel fixes

cel.dev/expr had some upstream Bazel fixes in v0.16.2 without which Gazelle doesn't work.

* chore: generate

* e2e: remove references to kubeProxyVersion

kubeProxyVersion is deprecated as of KEP-4004. It was never being set to an accurate value before, and we only used it in the e2e test, so removing the additional check should not hurt here.

See https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4004-deprecate-kube-proxy-version

* constellation-node-operator: use typed rate-limiter

The untyped rate-limiter was deprecated in favor of a generic one that can just be instantiated to `any` to achieve the previous behaviour.

* Advertise ALPN settings in NextProtos required by gRPC

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* atls: add nextProtos

nextProtos (for ALPN) is now required by gRPC, so add it.

* go: add cri-client replace

* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-16 17:35:51 +02:00
renovate[bot]
36f8beb3df
deps: update quay.io/medik8s/node-maintenance-operator Docker tag to v0.17.0 (#3425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 17:07:37 +02:00
renovate[bot]
357e4366ff
deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.9.1 (#3426)
* deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.9.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-16 17:06:41 +02:00
renovate[bot]
8813a1ab04
deps: update registry.k8s.io/sig-storage/snapshot-validation-webhook Docker tag to v8.1.0 (#3431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 17:06:06 +02:00
renovate[bot]
2e2dd855b5
deps: update registry.k8s.io/sig-storage/snapshot-controller Docker tag to v8.1.0 (#3430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 16:07:41 +02:00
renovate[bot]
9733dc0cd5
deps: update dependency aspect_bazel_lib to v2.9.2 (#3428)
* deps: update dependency aspect_bazel_lib to v2.9.2

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-16 11:51:48 +02:00
Daniel Weiße
dd73c4ce5f
ci: enable Teams mentions for burgerdev (#3422)
* Enable Teams mentions for burgerdev
* Add instructions on how to update notify_teams assignees

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-10-16 10:54:53 +02:00
renovate[bot]
e27d80fa02
deps: update dependency containernetworking/plugins to v1.6.0 (#3420)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-10-16 10:28:37 +02:00
edgelessci
d3822f8e16
image: update measurements and image version (#3427)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-16 08:06:50 +02:00
renovate[bot]
c8bf4a8a43
deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.9.1 (#3424)
* deps: update public.ecr.aws/eks/aws-load-balancer-controller Docker tag to v2.9.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-15 21:29:53 +02:00
renovate[bot]
5af5c72372
deps: update module k8s.io/endpointslice to v0.31.1 (#3421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 16:40:19 +02:00
renovate[bot]
cfb3b70113
deps: update mvdan/gofumpt to v0.7.0 (#3423)
* deps: update mvdan/gofumpt to v0.7.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-15 16:40:07 +02:00
renovate[bot]
8ca8849df6
deps: update module k8s.io/dynamic-resource-allocation to v0.31.1 (#3418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 15:23:31 +02:00
Moritz Sanft
843d9bcb7c
treewide: upgrade to Go 1.23.2 (#3417)
* treewide: upgrade to Go 1.23.2

* deps: update golangci/golangci-lint to v1.61.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-15 13:52:45 +02:00
renovate[bot]
9ef5b70966
deps: update kubernetes packages (#3416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 13:10:39 +02:00
renovate[bot]
093fddb001
deps: update golangci/golangci-lint to v1.61.0 (#3415)
* deps: update golangci/golangci-lint to v1.61.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-15 13:09:31 +02:00
renovate[bot]
fd280ecc5f
deps: update dependency kubernetes-sigs/cri-tools to v1.31.1 (#3414)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-10-14 22:11:09 +02:00
renovate[bot]
0b5b2ea65b
deps: update dependency containernetworking/plugins to v1.5.1 (#3408)
* deps: update dependency containernetworking/plugins to v1.5.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-14 11:38:19 +02:00
renovate[bot]
70ebfea5ec
deps: update bufbuild/buf to v1.45.0 (#3407)
* deps: update bufbuild/buf to v1.45.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-14 11:37:40 +02:00
renovate[bot]
c392bec892
deps: update dependency rules_oci to v2.0.1 (#3412)
* deps: update dependency rules_oci to v2.0.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-14 11:36:47 +02:00
Daniel Weiße
6c94b5ae6b
ci: upgrade to ubuntu-24.04 fixups (#3413)
* Upgrade workflows to ubuntu-24.04
* Install missing tools for ubuntu-24.04

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-10-14 11:10:30 +02:00
renovate[bot]
898c37be2a
deps: update bazel (modules) (#3405)
* deps: update bazel (modules)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-14 08:29:37 +02:00
renovate[bot]
2006c0eb04
deps: update rhysd/actionlint to v1.7.3 (#3406)
* deps: update rhysd/actionlint to v1.7.3

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-14 08:29:24 +02:00
edgelessci
47b2f59b7d
image: update locked rpms (#3410)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-14 08:25:05 +02:00
renovate[bot]
810f86582d
deps: update Kubernetes versions (#3358)
* deps: update Kubernetes versions

* e2e: run vale with python venv

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2024-10-11 19:23:31 +02:00
Markus Rudy
96d98aa136
CODEOWNERS: move ownership of Helm charts to burgerdev (#3400) 2024-10-11 17:04:35 +02:00
renovate[bot]
1bdc0944ae
deps: update K8s constrained Azure versions (#3374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-11 17:04:08 +02:00
renovate[bot]
228aa18a2c
deps: update bazel (core) (#3368)
* deps: update bazel (core)

* bazel: use non-release rules_nixpkgs

* Update bazel module lock file

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* bazel: resolve patch conflict after upgrading gazelle

The generated BUILD file has changed, so our patch needs to be adapted.

* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-11 16:40:35 +02:00
renovate[bot]
a33639a354
deps: update aquasecurity/tfsec to v1.28.11 (#3401)
* deps: update aquasecurity/tfsec to v1.28.11

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-11 16:24:01 +02:00
Markus Rudy
60dcac1f1b
ci: ignore GO-2024-3166 in govulncheck (#3404)
* ci: ignore GO-2024-3166 in govulncheck
2024-10-11 15:39:44 +02:00
edgelessci
1561d67a12
image: update measurements and image version (#3402)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-11 09:35:11 +02:00
renovate[bot]
ac26c80a90
deps: update GitHub action dependencies (#3399)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 12:16:10 +02:00
Markus Rudy
b1cf9bc3fe
e2e: upgrade: allow specifying the origin k8s version (#3397) 2024-10-09 11:33:21 +02:00
3u13r
2854136192
Allow upgrades on azure without Terraform changes on LBs created from within Kubernetes (#3257)
* k8s: use separate lb for K8s services on azure

* terraform: introduce local revision variable and data resource

* terraform: azure: dont expose full nodeport range

* docs: add Azure load balancer migration
2024-10-09 11:31:17 +02:00
edgelessci
2dcea4fa63
image: update measurements and image version (#3398)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-09 08:34:16 +02:00
Markus Rudy
961fabbd1a
helm: upgrade Cilium to v1.15.8 (#3392)
* helm: upgrade to Cilium v1.15.8

* fixup! helm: upgrade to Cilium v1.15.8

use proper release tag

* fixup! helm: upgrade to Cilium v1.15.8

use images build from tag
2024-10-08 10:55:29 +02:00
renovate[bot]
02762f7956
deps: update distroless_static Docker digest to 69830f2 (#3391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 19:07:25 +02:00
3u13r
204d684686
dev-docs: link to docs website instead of to local files (#3394)
* dev-docs: link to docs website instead of to local files

* dev-docs: pin sonobuoy link to latest working docs release

* dev-docs: link to new libvirt docs URL
2024-10-07 19:05:21 +02:00
Moritz Eckert
0f93af9aec
readme: remove demo references (#3393) 2024-10-07 15:16:54 +02:00
Markus Rudy
dd1763a36d
helm: manage CoreDNS addon as Helm chart (#3388)
* Reapply "helm: manage CoreDNS addon as Helm chart (#3236)"

This reverts commit 4a9422d288ef42f5ebf0dd878dc9aff26ed082dd.

* Reapply "helm: fix kubeadm bugs caused by CoreDNS installation (#3353)"

This reverts commit 9ecfc3fa19780b8b4972872b0a505d377ec70601.
2024-10-07 10:51:37 +02:00
renovate[bot]
32e00994bb
deps: update ubuntu:22.04 Docker digest to 58b8789 (#3365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 10:39:06 +02:00
edgelessci
da623ad3cc
image: update locked rpms (#3390)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-07 09:54:36 +02:00
edgelessci
cecc57f993
image: update measurements and image version (#3386)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-07 08:45:03 +02:00
Markus Rudy
bd31361d3d
image: retire idle=poll option for AWS (#3387) 2024-10-04 17:01:18 +02:00
Felix Schuster
622406de2c
Add overview of security protocols (#3376) 2024-10-02 10:22:27 +02:00
edgelessci
097879a9ca
image: update measurements and image version (#3384)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-10-02 09:32:22 +02:00
Moritz Sanft
39e6059607
ci: fix matrix runner spec (#3380) 2024-09-27 16:07:38 +02:00
Moritz Sanft
648e9370b6
treewide: v2.18.0 post-release (#3381) 2024-09-27 09:43:47 +02:00
edgelessci
692cb3fa00
docs: add release v2.18.0 (#3378)
Co-authored-by: msanft <58110325+msanft@users.noreply.github.com>
2024-09-27 09:08:18 +02:00
edgelessci
2f67eb3f54
image: update measurements and image version (#3379)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-27 08:10:42 +02:00
3u13r
882d602524
openstack: set region in cluster cloud client (#3375) 2024-09-26 11:08:06 +02:00
edgelessci
d65987cb15
image: update measurements and image version (#3377)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-25 08:41:47 +02:00
Daniel Weiße
c0a59a18d5
ci: update e2e mini default region and always return resource group name (#3373)
* Choose resource group name outside of Terraform to catch issues during apply
* Run test in West Europe

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-09-25 08:37:27 +02:00
renovate[bot]
068e68d478
deps: update bazel (modules) (#3370)
* deps: update bazel (modules)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2024-09-24 09:52:45 +02:00
edgelessci
ea9d5122f3
image: update locked rpms (#3372)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-22 11:36:40 +02:00
edgelessci
6fc051cf98
image: update measurements and image version (#3371)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-20 08:21:52 +02:00
Markus Rudy
1ca8d4f977
ci: remove obsolete python dep (#3369) 2024-09-19 14:16:51 +02:00
renovate[bot]
681393ef28
deps: update distroless_static Docker digest to b033683 (#3367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 13:23:09 +02:00
Markus Rudy
850b460002
helm: revert parts of CoreDNS Helm chart packaging (#3366)
* Revert "helm: fix kubeadm bugs caused by CoreDNS installation (#3353)"

This reverts commit 8ef5ea2efe48f44bc5cbdacc5bcd15511cc7440a.

* Revert "helm: manage CoreDNS addon as Helm chart (#3236)"

This reverts commit 97c77e2a78793a5519da7712ea87ef1475f7dc0c.

* upgrade-agent: ignore CoreDNS preflight errors
2024-09-19 10:55:21 +02:00
Daniel Weiße
89eb8ca6ae
ci: check if CLI version supports --subscriptionID flag before using it (#3364)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-09-18 10:04:29 +02:00
Moritz Sanft
effb086cd3
operator: use GCP REST API for instance templates (#3361) 2024-09-18 08:57:14 +02:00
renovate[bot]
dda6d5c16c
deps: update fedora:40 Docker digest to d0207db (#3363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 08:49:43 +02:00
edgelessci
3a40e79779
image: update measurements and image version (#3362)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-18 08:35:33 +02:00
renovate[bot]
9c13603756
deps: update distroless_static Docker digest to 95eb83a (#3347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 08:15:50 +02:00
Daniel Weiße
7bb6ad6cc2
docs: fix broken links (#3359)
* Update cosign installation guide link
* Update cosign overview link
* Update cosign sbom link

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-09-17 15:33:08 +02:00
Moritz Sanft
d2cbc0adef
terraform: enable serial console by default (#3360) 2024-09-17 15:01:33 +02:00
3u13r
1f887c7868
image: re-enable autologin for debug and console images (#3355)
* image: remove autologin via mkosi

In mkosi v24 --autologin no longer works for ttyS consoles. Since the CSPs use those exclusively for their serial consoles, we need to replace this with another solution (see next commit)

* image: add getty systemd unit for debug images

This replaces the mkosi --autologin solution with a getty systemd unit for ttyS0.
Note that both console and debug images hace their consoles enabled.
2024-09-17 14:07:28 +02:00
renovate[bot]
a295ecaffb
cli: add --subscriptionID flag for iam create azure command (#3328)
* deps: update Terraform azurerm to v4
* Set Azure subscription ID when applying Terraform files
* Upgrade azurerm to v4.1.0
* Mark subscriptionID flag as not required
* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-17 12:30:22 +02:00
edgelessci
c6a9c2574b
image: update locked rpms (#3356)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-15 16:49:40 +02:00
edgelessci
994c4523b0
image: update measurements and image version (#3354)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-13 10:30:55 +02:00
Markus Rudy
8ef5ea2efe
helm: fix kubeadm bugs caused by CoreDNS installation (#3353)
* helm: rename CoreDNS configmap

* upgrade-agent: ignore CoreDNS preflight errors

* fixup! helm: rename CoreDNS configmap
2024-09-13 09:47:33 +02:00
Markus Rudy
e077eaf02c
e2e: remove immediate node status printing (#3351) 2024-09-12 22:44:38 +02:00
Moritz Sanft
5f5df1fc36
terraform-provider-constellation: set correct cc_technology in GCP example (#3352) 2024-09-12 13:31:21 +02:00
edgelessci
7e9c316201
image: update measurements and image version (#3350)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-11 08:30:27 +02:00
Markus Rudy
98f359e039
helm: allow multiple default routes (#3344) 2024-09-10 13:17:26 +02:00
renovate[bot]
3e37819fe7
deps: update cloud-provider-gcp (K8s version constrained) (#3320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 13:16:51 +02:00
renovate[bot]
665cff0071
deps: update K8s constrained AWS versions (#3319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 11:41:44 +02:00
renovate[bot]
282fd315d2
deps: update K8s constrained Azure versions (#3346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 11:39:05 +02:00
Moritz Sanft
fe2fd0a2da
treewide: update Go toolchain to 1.22.7 (#3343) 2024-09-09 12:45:48 +02:00
edgelessci
0aeda78089
image: update locked rpms (#3341)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-09 11:19:05 +02:00
Moritz Sanft
f7c2392be2
image: update mkosi to 24.3 (#3342)
* flake: format

* image: update mkosi to 24.3

This updates mkosi to a next-version of v24.3, which is now available in nixpkgs. This removes the non-hermetic `uidmap` dependency, which is a great advantage. It will also be less of an effort to upgrade to v25 going forward.
Changes required are keeping `/var/cache` around (which is reproducible for our images, so no problem), as mkosi needs files from it in the build process. mkosi now additionally requires an explicit option to fetch the signing keys for the package repositories from the internet. A hack was required to satisfy the Bazel package, which should probably be solved properly at some point.
2024-09-09 11:18:51 +02:00
renovate[bot]
5720fcc330
deps: update ubuntu:22.04 Docker digest to adbb901 (#3321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 08:35:43 +02:00
edgelessci
a4b29ebdb6
image: update measurements and image version (#3338)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-06 08:13:50 +02:00
edgelessci
a3bd2e029c
image: update measurements and image version (#3335)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-04 08:36:51 +02:00
Moritz Sanft
eab9aca26f
terraform-provider-constellation: make kubeconfig output fine-grained (#3334) 2024-09-03 16:26:08 +02:00
edgelessci
d04fbe88af
image: update locked rpms (#3331)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-03 16:14:59 +02:00
edgelessci
40d0811298
image: update measurements and image version (#3332)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-09-03 10:43:40 +02:00
Daniel Weiße
d7bdfccdd7
terraform: tidy files (#3333)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-09-03 09:57:05 +02:00
Moritz Sanft
8555bd00a9
terraform-provider: document MAA patching more prominently (#3330) 2024-08-29 15:50:26 +02:00
Daniel Weiße
c11631ec11
logging: reduce grpc logging noise (#3329)
* Normalize gRPC logs to print at warn level only
* Fix grpcLogger level enablement

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-08-29 10:44:22 +02:00
renovate[bot]
6e6ea1a9d5
deps: update Kubernetes versions (#3325)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-26 13:46:46 +02:00
Moritz Eckert
a54b59ab25
docs: remove deprecated master-secret flag from recovery (#3326) 2024-08-26 12:54:58 +02:00
edgelessci
5efa7ffefb
image: update locked rpms (#3324)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-26 09:19:10 +02:00
renovate[bot]
cf5d9c2f12
deps: update Kubernetes versions (#3298)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-26 09:18:56 +02:00
Thomas Tendyck
e2ee775483 docs: update Tab tags 2024-08-23 22:45:37 +02:00
Thomas Tendyck
e90b0e5109 docs: update docusaurus and enable broken anchor detection 2024-08-23 22:45:37 +02:00
Thomas Tendyck
ded559a3fe docs: update AsciinemaWidget tags 2024-08-23 22:45:37 +02:00
Thomas Tendyck
abe0397e0d docs: replace angle bracket links, which aren't supported by new mdx version 2024-08-23 22:45:37 +02:00
edgelessci
03c6ae20bb
image: update measurements and image version (#3322)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-23 10:20:46 +02:00
renovate[bot]
7f2b388168
deps: update K8s constrained GCP versions (#3289)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-08-23 01:17:24 +02:00
renovate[bot]
f9dd864229
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20240816 (#3285)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-08-23 00:30:51 +02:00
renovate[bot]
10b08a030e
deps: update K8s constrained Azure versions (#3246)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-08-22 23:42:05 +02:00
Joseph Mearman
5e1c09bdd6 chore: remove rogue character 2024-08-22 14:29:44 +02:00
laralaske
1c78d2fde1
update readme banner (#3318)
* Add files via upload

* Update README.md

* Rename GitHub Banner_Constellation animated.svg to BannerConstellationanimated.svg

* Update README.md

* Delete docs/static/img/banner.svg

* Update BannerConstellationanimated.svg
2024-08-22 12:29:52 +02:00
edgelessci
57ffe6d4a7
image: update measurements and image version (#3316)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-22 08:27:27 +02:00
Moritz Eckert
ec7b40d933
docs: sort clouds table alphabetical (#3315) 2024-08-20 10:35:41 +02:00
edgelessci
f92d9db78a image: update locked rpms 2024-08-19 09:31:30 +02:00
edgelessci
f41b7fa9d7
image: update measurements and image version (#3312)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-14 08:12:10 +02:00
Thomas Tendyck
0551a862b3 docs: remove date from "feature status of clouds" page 2024-08-13 22:28:57 +02:00
Moritz Sanft
0f57261c67
image: document uidmap dependency (#3310) 2024-08-12 13:34:03 +02:00
edgelessci
85d4208f26
image: update locked rpms (#3309)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-12 09:37:35 +02:00
renovate[bot]
fe96153507
deps: update bazel (modules) (#3304)
* deps: update bazel (modules)
* Set std=c++14
* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2024-08-09 11:00:22 +02:00
edgelessci
9b1b04f4e5
image: update measurements and image version (#3307)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-09 08:24:39 +02:00
Daniel Weiße
1e5dcc3f76
renovate: schedule dependency updates (#3305)
* Run large dependency group upgrades on schedule
* Stop ignoring stackit Terraform releases
* Put s3proxy container updates on a schedule

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-08-09 08:23:08 +02:00
renovate[bot]
e881705f73
deps: update Terraform constellation to v2 (#3306)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-08 16:34:04 +02:00
renovate[bot]
2d008c2923
deps: update bazel (plugins) (#3303)
* deps: update bazel (plugins)

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-08-08 15:43:52 +02:00
renovate[bot]
6257d0a283
deps: update bufbuild/buf to v1.36.0 (#3302)
* deps: update bufbuild/buf to v1.36.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-08 11:25:49 +02:00
renovate[bot]
0ad89ebcd8
deps: update aquasecurity/tfsec to v1.28.10 (#3301)
* deps: update aquasecurity/tfsec to v1.28.10

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-08 11:25:39 +02:00
renovate[bot]
087855ec00
deps: update module github.com/gophercloud/gophercloud to v2 (#3300)
* deps: update module github.com/gophercloud/gophercloud to v2

* update module github.com/gophercloud/utils to v2 and add context

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-08-08 10:37:09 +02:00
renovate[bot]
8b256f20b8
deps: update module github.com/docker/docker to v27 (#3299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-08 10:24:32 +02:00
renovate[bot]
2e15e54e33
deps: update ghcr.io/edgelesssys/constellation/s3proxy Docker tag to v2.18.0-pre.0.20240807132706-ffde0ef7b7d3 (#3295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-08 09:34:22 +02:00
Daniel Weiße
ffde0ef7b7
ci: give scheduled image builds more time between executions (#3297)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-08-07 13:27:06 +02:00
renovate[bot]
59df2b7d92
deps: update rules_oci digest to v2.0.0-beta1 (#3135)
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2024-08-07 09:32:38 +02:00
edgelessci
e41bb61694
image: update measurements and image version (#3296)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-07 09:03:54 +02:00
renovate[bot]
b010015326
deps: update dependency Pillow to v10.3.0 [SECURITY] (#3293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 08:30:52 +02:00
renovate[bot]
f186bbb235
deps: update Go dependencies (#3291)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 09:31:03 +02:00
edgelessci
c5a5cd7d72
image: update locked rpms (#3290)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-05 09:47:35 +02:00
renovate[bot]
c6eec7384b
deps: update bazel (core) (#3286)
* deps: update bazel (core)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-02 15:43:40 +02:00
renovate[bot]
aca61bda4e
deps: update golangci/golangci-lint to v1.59.1 (#3287)
* deps: update golangci/golangci-lint to v1.59.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-02 15:15:55 +02:00
renovate[bot]
5538a7a23d
deps: update GitHub action dependencies (#3288)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 15:06:00 +02:00
renovate[bot]
f33e7e5ac5
deps: update ubuntu:22.04 Docker digest to 340d9b0 (#3252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 15:05:28 +02:00
renovate[bot]
b38dcc1f52
deps: update ghcr.io/edgelesssys/constellation/s3proxy Docker tag to v2.18.0-pre.0.20240801135259-5a577728fd23 (#3264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 14:28:20 +02:00
edgelessci
e3077aa80f
image: update measurements and image version (#3284)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-02 08:34:08 +02:00
Daniel Weiße
5a577728fd
renovate: fix missing comma in renovate config (#3283)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-08-01 13:52:59 +02:00
Daniel Weiße
302a519198
renovate: group non-core bazel dependency updates (#3281)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-08-01 12:46:32 +02:00
renovate[bot]
211670f89d
deps: update module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v5 to v6 (#3280)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-08-01 12:46:03 +02:00
renovate[bot]
61bb7c2c26
deps: update module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 to v6 (#3279)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-08-01 11:28:15 +02:00
renovate[bot]
92b9d5ab20
deps: update GitHub action dependencies (#3278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 10:34:44 +02:00
edgelessci
ed22f88f7e
image: update locked rpms (#3275)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-08-01 10:34:35 +02:00
edgelessci
43fde2ea79
image: update measurements and image version (#3277)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-31 08:45:51 +02:00
Daniel Weiße
9d58f8a494
ci: correctly fetch image on nightly image ref (#3276)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-30 12:58:57 +02:00
Moritz Sanft
2e9dda52b7
ci: mirror GCP SEV-SNP marketplace images (#3274) 2024-07-26 12:43:16 +02:00
edgelessci
60bdec5fb1
image: update measurements and image version (#3273)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-26 08:20:53 +02:00
3u13r
f4e6c910ab
terraform: azure detach unused lb backends (#3270) 2024-07-25 22:53:13 +02:00
Adrian Stobbe
212aa64f10
ci: add conformance test to weekly (#3230) 2024-07-25 17:38:17 +02:00
Daniel Weiße
b781a75af7
ci: run performance e2e tests using nightly image (#3272)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-25 16:25:56 +02:00
edgelessci
eb9aa8238a
image: update measurements and image version (#3271)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-24 08:19:30 +02:00
renovate[bot]
a55e330f5e
deps: update module k8s.io/kubernetes to v1.30.3 [SECURITY] (#3266)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-07-24 01:26:04 +02:00
Thomas Tendyck
399376d3e3
Make SEV-SNP the default attestation variant on GCP (#3267)
* Make SNP the default on GCP

* fixup! Make SNP

* fixup! Make SNP
2024-07-22 13:29:27 +02:00
3u13r
4573f10884
attestation: replace expired test vlek (#3269)
Co-authored-by: Thomas Tendyck <tt@edgeless.systems>
2024-07-22 00:14:20 +02:00
edgelessci
6e8d8d43f8
image: update locked rpms (#3268)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-21 11:49:59 +02:00
edgelessci
3f6e7f9c53
image: update measurements and image version (#3265)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-19 07:53:33 +02:00
renovate[bot]
78ce220cf9
deps: update GitHub action dependencies (#3259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 08:49:57 +02:00
edgelessci
1edc1966f9
image: update measurements and image version (#3260)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-17 08:46:15 +02:00
renovate[bot]
d2e74133a9
deps: update ghcr.io/edgelesssys/constellation/s3proxy Docker tag to v2.18.0-pre.0.20240716154541-4d13479f9053 (#3258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 16:40:18 +02:00
renovate[bot]
f6d7a33540
deps: update ghcr.io/edgelesssys/constellation/s3proxy Docker tag to v2.18.0-pre.0.20240716132742-505b29458eec (#3245)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 16:15:51 +02:00
laralaske
eab42221a9
Update concept.svg (#3255)
* Update concept.svg

* Update concept.svg
2024-07-14 21:29:11 +02:00
3u13r
38b72f8294
helm: add serviceProxyName to conformance values (#3247) 2024-07-14 15:49:45 +02:00
edgelessci
4f2418ed27
image: update locked rpms (#3256)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-14 12:56:13 +02:00
Markus Rudy
02cb4a3850
renovate: exclude stackit from Terraform group (#3253) 2024-07-12 13:23:49 +02:00
Markus Rudy
97c77e2a78 helm: manage CoreDNS addon as Helm chart (#3236)
* helm: generate CoreDNS Helm chart
* helm: load CoreDNS Helm chart
* bootstrapper: don't install coredns addon
2024-07-12 12:01:49 +02:00
Markus Rudy
807bbbfd16 cli: annotate CoreDNS resources for Helm (#3236) 2024-07-12 12:01:49 +02:00
renovate[bot]
b872fbdfe8
deps: update distroless_static Docker digest to ce46866 (#3251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-12 10:57:20 +02:00
renovate[bot]
c2b720ca56
deps: update Terraform dependencies (#3209)
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2024-07-12 10:30:37 +02:00
Thomas Tendyck
712ff90ba0 docs: backport to old versions 2024-07-12 09:16:44 +02:00
Thomas Tendyck
1826801f0a docs: move compute benchmarks to own page 2024-07-12 09:16:44 +02:00
edgelessci
529eab2bf9
image: update measurements and image version (#3250)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-12 08:27:08 +02:00
Daniel Weiße
e08ed38be8
ci: fix relative paths for verify e2e test (#3249)
* Use absolute paths to avoid issues with bazel run changing working directory
* Fix error message in attestationconfig cli

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-12 08:26:36 +02:00
Malte Poll
65ed286c7d
image: replicate nvidia Azure images in eastus2 (#3027)
Co-authored-by: derpsteb <ob@edgeless.systems>
2024-07-11 11:09:15 +02:00
Daniel Weiße
6c24963570
attestationconfigapi: revise upload frequency (#3238)
* Add attestationconfigapi compare command
* Only upload the lowest version for each verify test

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-10 12:59:02 +02:00
Markus Rudy
a6b0885f18
dev-docs: set an MTU on the VPN route (#3239) 2024-07-10 10:55:48 +02:00
renovate[bot]
2cf315911d
deps: update Go dependencies (#3242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 10:29:58 +02:00
Adrian Stobbe
051cb20b09
ci: fix TF attestation version assertion in integration test (#3237) 2024-07-10 09:56:36 +02:00
Markus Rudy
5d25eded1d
csi: mark mount integration test as flaky (#3240) 2024-07-10 09:11:32 +02:00
Daniel Weiße
391deeae37
ci: reduce max parallel attestationconfig e2e tests back to 1 for stability (#3208)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-10 08:24:32 +02:00
edgelessci
543ba96e59
image: update measurements and image version (#3243)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-10 07:40:24 +02:00
renovate[bot]
8c680ee811
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20240701 (#3227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 06:46:32 +02:00
renovate[bot]
f3ade03a3e
deps: update module google.golang.org/grpc to v1.64.1 [SECURITY] (#3244)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 06:44:46 +02:00
renovate[bot]
0d421b905f
deps: update bufbuild/buf to v1.34.0 (#3210)
* deps: update bufbuild/buf to v1.34.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-09 21:28:15 +02:00
Adrian Stobbe
f4a3ae7d27
ci: fix IDE setup on mac (#3226) 2024-07-09 09:27:32 +02:00
edgelessci
2de4cdba74
image: update locked rpms (#3235)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-07 21:46:07 +02:00
edgelessci
2a59f2d464
image: update measurements and image version (#3234)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-05 08:38:48 +02:00
Moritz Eckert
5efe2a4c83
docs: update concept graphic (#3233) 2024-07-04 15:40:21 +02:00
Moritz Sanft
9f28c62793
terraform: update StackIT provider to v0.23.0 (#3232) 2024-07-04 11:34:24 +02:00
Moritz Sanft
74e0f44230
chore: v2.17.0 post-release (#3229)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-07-04 11:17:55 +02:00
Daniel Weiße
e9a4ccd009
ci: run versionsapi through Bazel instead of building a container (#3231)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-04 10:02:59 +02:00
Daniel Weiße
20269ab46e
gcp: pass context to metadata functions (#3228)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-03 14:41:29 +02:00
edgelessci
7b6c3a710e
docs: add release v2.17.0 (#3221)
Co-authored-by: msanft <58110325+msanft@users.noreply.github.com>
2024-07-03 14:11:59 +02:00
renovate[bot]
9418535229
deps: update Go dependencies (#3215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2024-07-03 13:59:03 +02:00
Daniel Weiße
9c3cb08f92
deps: bump Go version to v1.22.5 (#3225)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-03 09:49:37 +02:00
Moritz Sanft
c48995f249
ci: only commit measurements if changes are present (#3223)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-07-02 09:12:46 +02:00
Moritz Sanft
7945778d67
ci: fix directory deletion (#3222) 2024-07-01 17:24:44 +02:00
Moritz Sanft
c7027d9ddf
ci: add missing permissions in release workflow (#3220)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-07-01 16:23:53 +02:00
Daniel Weiße
c7e8dfd1e8
deps: remove dependency on helm/v2 (#3219)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-07-01 16:13:36 +02:00
edgelessci
c004e0610d
image: update locked rpms (#3218)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-07-01 08:55:54 +02:00
Daniel Weiße
ca47f3fa02
renovate: allow major version upgrades of GitHub action dependencies (#3217)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-28 16:15:11 +02:00
Markus Rudy
ab94456455
debugd: daemonize logstash containers (#3216)
* debugd: daemonize logstash containers

* fixup! debugd: daemonize logstash containers

remove in-process logging
2024-06-28 14:56:46 +02:00
renovate[bot]
782752080f
deps: update Constellation containers to v2.17.0-pre.0.20240627193502-8aed4bb0fe45 (#3214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 08:34:08 +02:00
edgelessci
9445a1af04
image: update measurements and image version (#3213)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-28 08:18:14 +02:00
renovate[bot]
f3641fa106
deps: update dependency bazel_skylib to v1.7.1 (#3211)
* deps: update dependency bazel_skylib to v1.7.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-28 06:45:49 +02:00
Markus Rudy
8aed4bb0fe debugd: provide filebeat with systemd libs (#3205) 2024-06-27 19:35:02 +02:00
Markus Rudy
3b64e654d1 debugd: use runc as podman runtime (#3205) 2024-06-27 19:35:02 +02:00
Moritz Eckert
ca8d11861d
docs: add policy troubleshooting tip (#3212)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-06-27 16:47:23 +02:00
renovate[bot]
aa52777982
deps: update dependency bazel to v7.2.1 (#3194)
* deps: update dependency bazel to v7.2.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-27 11:42:37 +02:00
renovate[bot]
f1f61ffd51
deps: update ubuntu:22.04 Docker digest to 19478ce (#3187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 10:34:30 +02:00
renovate[bot]
1f70c4e77a
deps: update Go dependencies (#3207)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 10:32:17 +02:00
renovate[bot]
bdfb74f6ca
deps: update Terraform dependencies (#3200)
* deps: update Terraform dependencies

* upgrade random provider

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-27 09:14:10 +02:00
Daniel Weiße
d67d0ac9df Enable upload of TDX reports to Constellation CDN
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-27 09:09:13 +02:00
Daniel Weiße
9159b60331 Implement support for "latest" placeholders for Azure TDX
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-27 09:09:13 +02:00
Daniel Weiße
a34493caa6 Enable versions API to handle TDX versions
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-27 09:09:13 +02:00
Daniel Weiße
fbddbc9867 Dont re-marshal fetched objects
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-27 09:09:13 +02:00
Daniel Weiße
cd4c90af7e Rename apifetcher methods
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-27 09:09:13 +02:00
Daniel Weiße
52a65c20ac Move upload/delete code to its own package
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-27 09:09:13 +02:00
edgelessci
5654e76f7e
image: update measurements and image version (#3204)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-27 08:00:56 +02:00
renovate[bot]
2df105f8dd
deps: update Go dependencies (#3199)
* deps: update Go dependencies

* Bump go.work Go version to v1.22.4

* Bump github.com/hashicorp/go-retryablehttp to v0.7.7 to fix GO-2024-2947

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-06-26 15:40:45 +02:00
3u13r
27946c6f2c
dev-docs: add bare-metal setup (#3126) 2024-06-25 14:23:12 +02:00
Moritz Sanft
50dcfd7905
bootstrapper: remove unnecessary stat (#3202) 2024-06-25 11:51:23 +02:00
Moritz Sanft
dcb8cca268
bootstrapper: remove static pod manifests before cluster init/join 2024-06-25 10:43:23 +02:00
Markus Rudy
3db3db3bf2
operator: fix gRPC dialing over UDS (#3201)
* operator: add test for gRPC connection over UDS
2024-06-25 10:11:57 +02:00
Daniel Weiße
e0c5acf2f3
deps: update k8s replace directive (#3193)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-24 16:04:07 +02:00
renovate[bot]
af3f2bcd42
deps: update GitHub action dependencies (#3198)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 15:19:00 +02:00
renovate[bot]
5f9e970ebd
deps: update Constellation containers to v2.17.0-pre.0.20240619151941-9cd11842442d (#3179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 15:03:21 +02:00
renovate[bot]
1d3eae010f
deps: update rhysd/actionlint to v1.7.1 (#3197)
* deps: update rhysd/actionlint to v1.7.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-24 14:32:00 +02:00
renovate[bot]
c1b6d93fb9
deps: update dependency aspect_bazel_lib to v2.7.8 (#3196)
* deps: update dependency aspect_bazel_lib to v2.7.8

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-24 13:47:50 +02:00
Markus Rudy
9ad9ff4b51
bazel: use released version of gazelle (#3192) 2024-06-24 12:04:31 +02:00
edgelessci
3161adea5f
image: update locked rpms (#3195)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-23 15:00:08 +02:00
renovate[bot]
d8680367b0
deps: update golang Docker tag to v1.22.4 (#3191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 10:30:26 +02:00
Daniel Weiße
d3f3697d00
ci: make bazel generate more stable (#3188)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-21 13:22:07 +02:00
renovate[bot]
fcf83318fd
deps: update dependency rules_proto to v6.0.2 (#3190)
* deps: update dependency rules_proto to v6.0.2

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-21 11:04:00 +02:00
Daniel Weiße
09d19fec22
cli: fix constellation verify depending on an initialized constellation-state.yaml file (#3184)
* Ignore missing state file if flags are provided
* Update verify docs to include requirement for config file

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-21 10:09:01 +02:00
renovate[bot]
e71819eb62
deps: update Go dependencies (#3185)
* deps: update Go dependencies
* deps: tidy all modules
* Replace deprecated `grpc.DialContext` with `grpc.NewClient`

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-06-21 10:05:57 +02:00
edgelessci
bd80ab89cb
image: update measurements and image version (#3189)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-21 08:28:27 +02:00
renovate[bot]
c01f735042
deps: update bazel (core) (#3186)
* deps: update bazel (core)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-20 13:49:33 +02:00
renovate[bot]
afd6b35f18
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20240611 (#3180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 13:28:21 +02:00
renovate[bot]
364bc1c9c4
deps: update dependency aspect_bazel_lib to v2.7.7 (#3137)
* deps: update dependency aspect_bazel_lib to v2.7.7

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-20 13:27:48 +02:00
Daniel Weiße
c1e4da3ea1
debugd: reset unit failed status before restarting (#3183)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-20 11:22:37 +02:00
Daniel Weiße
a36e1a79f0
helm: upgrade cert-manager from v1.12.6 to v1.15.0 (#3177)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-20 10:49:00 +02:00
Daniel Weiße
0368047939
helm: update Azure CSI, GCP CSI, and CSI snapshotter charts (#3175)
* Update GCP CSI chart to v1.4.0
* Update Azure CSI chart to v1.4.0
* Update CSI snapshotter from v6.2.2 to v8.0.1

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-20 08:41:46 +02:00
Markus Rudy
6e2af89c01
ci: fix cdbg_deploy error reporting (#3182) 2024-06-20 08:25:30 +02:00
Markus Rudy
c911eb4e3a
versions: default to k8s v1.29, support k8s v1.30, EOL v1.27 (#3173)
* versions: remove k8s 1.27 and patch-upgrade the others

* versions: add support for k8s 1.30.2

* versions: upgrade cloud provider images
2024-06-19 17:34:34 +02:00
Markus Rudy
132d540ac0
ci: fix GCP CCM findvers.sh script (#3178) 2024-06-19 16:26:02 +02:00
renovate[bot]
9cd1184244
deps: update GitHub action dependencies (#3176)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 15:19:41 +02:00
Markus Rudy
9a295b2c3a
ci: better fence around tidy-check-generate summary (#3174) 2024-06-19 12:19:41 +02:00
edgelessci
1975a10721
image: update measurements and image version (#3172)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-19 08:26:57 +02:00
Daniel Weiße
9d99d05826
cli: fix unmarshalling of sev-snp attestation documents in constellation verify (#3171)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-17 13:38:59 +02:00
edgelessci
e0f52b4acd
image: update locked rpms (#3170)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-16 11:05:20 +02:00
Markus Rudy
429711bf5d
ci: don't assign 3u13r (#3169) 2024-06-14 13:32:10 +02:00
Markus Rudy
566137e7ab
ci: make cdbg deploy errors easier to spot (#3168)
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2024-06-14 13:31:42 +02:00
edgelessci
63dc0c79af
image: update measurements and image version (#3167)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-14 08:14:39 +02:00
Daniel Weiße
daaa7755a7
cli: enable JSON output for constellation verify on Azure TDX (#3164)
* Remove formatter factory
* Enable `constellation verify` with JSON output for Azure TDX

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-12 13:18:27 +02:00
renovate[bot]
b3fcdc9a22
deps: update module github.com/Azure/azure-sdk-for-go/sdk/azidentity to v1.6.0 [SECURITY] (#3163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-12 08:04:52 +02:00
edgelessci
305bc692e9
image: update measurements and image version (#3162)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-12 08:03:25 +02:00
Daniel Weiße
8b76dd68ca
attetstation: enable Azure TDX CRL checking (#3160)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-12 08:02:47 +02:00
Daniel Weiße
c682558940
debugd: return systemd logs if restarting a unit fails (#3159)
* Wait until logcollection containers are ready
* Add systemd unit journal entries to error message

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-12 08:01:54 +02:00
Markus Rudy
08770a69c4
deps: upgrade to tink-go v2.1.0 (#3054)
* deps: leave notes on why forks are used

* deps: use upstream version of tink-go
2024-06-11 20:15:42 +02:00
renovate[bot]
f8e0ca4bb6
deps: update libvirtd_base Docker digest to 99dbf3c (#3157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 17:44:55 +02:00
Markus Rudy
fddad83eb4
helm: upgrade Cilium to v1.15.5-edg.1 (#3149) 2024-06-11 11:53:00 +02:00
Moritz Sanft
3efd50a518
ci: bump origin versions of upgrade tests (#3158) 2024-06-10 14:04:00 +02:00
renovate[bot]
85c4f9be2a
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20240528 (#3143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-09 11:05:02 +02:00
edgelessci
0a3f77e926
image: update locked rpms (#3156)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-09 11:03:17 +02:00
Daniel Weiße
32588339f3
cdbg: better error reporting on deploy failure (#3155)
* Don't report `UPLOAD_FILES_START_FAILED` as unknown error
* Return error to `cdbg` if present

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-07 15:46:37 +02:00
Moritz Sanft
095a66fb83
cli: return a more helpful error message on MAA patch failure (#3153)
* cli: return a more helpful error message on maa patch failure

* Update internal/maa/patch.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2024-06-07 15:18:34 +02:00
Moritz Sanft
7d4e7eff65
docs: adjust MAA updating (#3152)
* docs: adjust MAA updating

* versioned-docs: backport fix
2024-06-07 13:56:10 +02:00
miampf
94cf85c65a
fix: let artifact_upload fail if a bash command errors (#3154) 2024-06-07 13:37:06 +02:00
edgelessci
2c03a16a68
image: update measurements and image version (#3151)
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-07 07:59:55 +02:00
Daniel Weiße
9c2aef88ba
debugd: remove --debug flag from bootstrapper service created by debugd (#3150)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-06 10:25:51 +02:00
Markus Rudy
9a01551f75
ci: don't filter output of govulncheck (#3148) 2024-06-05 16:45:27 +02:00
Markus Rudy
2fbbf02516
bazel: use go_bin_for_host for all scripts (#3147) 2024-06-05 14:35:10 +02:00
Markus Rudy
68035cd90b
rfc: node access (#3051) 2024-06-05 14:07:15 +02:00
Daniel Weiße
d64aba7636
ci: author scheduled PRs using edgelessci account (#3145)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-05 10:41:19 +02:00
Daniel Weiße
39b01f8dac
deps: bump Go version to v1.22.4 (#3146)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-05 10:27:39 +02:00
Moritz Sanft
1989bce0a5
bootstrapper: disable gRPC logging (#3134)
* bootstrapper: disable gRPC logging

* bootstrapper: remove debug flag

* upgrade-agent: remove gRPC logging

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-06-05 09:24:08 +02:00
Moritz Sanft
1b7b80673c
image: update measurements and image version (#3144)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-06-05 09:22:32 +02:00
Daniel Weiße
1514351571
ci: update conditions on when to auto assign reviewer (#3141)
* Use the correct value for `github.event.pull_request.requested_reviewers`
* Run the workflow on more events than just labeling a PR
* Skip workflow if there are already reviewers assigned

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-05 08:42:47 +02:00
Markus Rudy
5a100d1fc9
helm: use Cilium chart from fork (#3130) 2024-06-05 07:56:11 +02:00
renovate[bot]
66a5d6a5d3
deps: update dependency rules_proto to v6.0.0.bcr.1 (#3138)
* deps: update dependency rules_proto to v6.0.0.bcr.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-06-04 16:54:50 +02:00
Moritz Sanft
5f0ed2b865
flake: pin bazel to 7.1.2 (#3142)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-06-04 16:50:52 +02:00
renovate[bot]
72555e9ba1
deps: update GitHub action dependencies (#3140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 14:50:20 +02:00
Daniel Weiße
66aa8a8d52
ci: adjust performance benchmark to run on different attestation variants (#3129)
* Create perf bench artifacts based on attestation variant, not CSP
* Enable perf bench on gcp-sev-snp, azure-tdx and AWS

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-06-04 13:23:07 +02:00
Moritz Sanft
69048e430e
image: fix podman config path (#3139) 2024-06-04 11:02:59 +02:00
renovate[bot]
929a555de5
deps: update bazel (core) (#3136)
* deps: update bazel (core)

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-06-03 15:35:32 +02:00
renovate[bot]
aa910cfc25
deps: update Kubernetes versions (#3102)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-06-03 15:08:09 +02:00
renovate[bot]
3c3b993c36
deps: update golang:1.22.3 Docker digest to f43c6f0 (#3117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 13:14:52 +02:00
renovate[bot]
93cabbe0b2
deps: update Constellation containers to v2.17.0-pre.0.20240524110423-80917921e3d6 (#3106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 13:13:48 +02:00
edgelessci
ce3b00668b
image: update measurements and image version (#3131)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-06-03 08:53:59 +02:00
edgelessci
26e9f988ff
image: update locked rpms (#3133)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-06-02 20:21:45 +02:00
miampf
fbdc8f6e85
ci: clean up failed miniconstellation e2e tests (#3109) 2024-05-31 13:51:55 +02:00
edgelessci
79d3781f3e
image: update measurements and image version (#3128)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-29 08:18:27 +02:00
Daniel Weiße
3834373fd2
ci: disable perf-bench test for gcp-sev-snp (#3127)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-28 16:25:37 +02:00
Felix Schuster
7197a9b719
Rewrite "chain of trust" section (#3066)
Co-authored-by: 3u13r <lc@edgeless.systems>
Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>
2024-05-27 18:21:27 +02:00
Moritz Sanft
d14ee6ba1d
helm: update AWS CSI driver chart (#3121) 2024-05-27 16:22:56 +02:00
edgelessci
a2e417f5bb
image: update locked rpms (#3124)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-05-27 08:15:52 +02:00
3u13r
21c30ebb76
metadata-api: support dnsmasq (#3115) 2024-05-24 15:14:16 +02:00
Malte Poll
37e46b98c2 bazel: removed unused WORKSPACE dependency 2024-05-24 11:18:35 +02:00
Malte Poll
f1794eb97d bazel: upgrade aspect_bazel_lib to 2.7.6 2024-05-24 11:18:35 +02:00
Malte Poll
32a8d8ffca bazel: upgrade rules_go to 0.48.0 2024-05-24 11:18:35 +02:00
renovate[bot]
80917921e3
deps: update GitHub action dependencies (#3123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 11:04:23 +02:00
Daniel Weiße
d4ab6a83bc
ci: check for pattern completion instead of file when creating archive (#3120)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-24 08:46:22 +02:00
Malte Poll
bd8466a8c8 misc: remove malt3 from issue assignments 2024-05-24 08:31:59 +02:00
Malte Poll
31653ec2b8 CODEOWNERS: remove malt3 2024-05-24 08:31:59 +02:00
edgelessci
be3f555573
image: update measurements and image version (#3119)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-24 08:08:42 +02:00
Malte Poll
b86faadfcc tidy: document MODULE.bazel.lock maintencance 2024-05-23 09:48:04 +02:00
Malte Poll
162e73de72 bazel: commit bzlmod lockfile
While it does have some quirks before Bazel 7.2, it is still vital for security.
2024-05-23 09:48:04 +02:00
Malte Poll
6533351dd9 bazel: limit concurrency of mkosi_image rule
The mkosi_image rule uses a lot of memory.
In order to allow higher levels of concurrency,
such as `bazel build --jobs 128`, we need to more accurately model the
amount of CPU and memory required.
2024-05-23 09:48:04 +02:00
Malte Poll
1b3b3041d7 renovate: match additional names for Bazel core deps 2024-05-23 09:48:04 +02:00
Malte Poll
8181582450 link-checker: add ignored sites 2024-05-23 09:48:04 +02:00
Malte Poll
f57698ac3f dev-docs: document new location of Go toolchain version 2024-05-23 09:48:04 +02:00
Malte Poll
2c8a16294e bazel: migrate rules_proto to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
d960121cba bazel: update BUILD files for rules_go bzlmod migration 2024-05-23 09:48:04 +02:00
Malte Poll
9e83ba12cd bazel: migrate rules_go and gazelle to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
73e4cf6a78 bazel: migrate buildifier to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
7e5f56f3ba bazel: migrate aspect_bazel_lib to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
fd70709192 bazel: migrate rules_python to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
2ba94f5ba8 bazel: migrate rules_pkg to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
8abac5c2fd bazel: migrate rules_cc to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
d179fae776 bazel: migrate hermetic_cc_toolchain to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
3be4adb7c4 bazel: migrate skylib to bzlmod 2024-05-23 09:48:04 +02:00
Malte Poll
8796edc9ad bazel: enable bzlmod
This change enables bzlmod without migrating any dependencies.
Instead, WORKSPACE dependencies can be migrated one by one.
2024-05-23 09:48:04 +02:00
Daniel Weiße
d0bab9eb08
ci: ignore missing files when creating archive (#3118)
* Reduce output noise from using 7zip
* Ignore non existent files when creating archive

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-23 09:24:15 +02:00
Moritz Sanft
9c100a542c
bootstrapper: prioritize etcd disk I/O (#3114) 2024-05-22 16:12:53 +02:00
Markus Rudy
902b7f49a8
operators: ignore node deletion errors on absence (#3113)
* operators: ignore node deletion errors on absence
2024-05-22 15:51:21 +02:00
edgelessci
71fe73a076
image: update locked rpms (#3111)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-05-20 11:29:16 +02:00
edgelessci
4434a85a51
image: update measurements and image version (#3110)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-17 08:12:51 +02:00
Malte Poll
5fb2a2cb89
dev-docs: document E-Mail to STACKIT on every release (#3108) 2024-05-16 18:23:31 +02:00
Daniel Weiße
036a4f2ee1
deps: remove obsolete Go replace to upgrade go-sev-guest (#3107)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-16 15:48:44 +02:00
renovate[bot]
fe65a6da76 deps: update Constellation containers 2024-05-16 13:11:53 +02:00
Moritz Sanft
5c3a7a5580
image: update to Fedora 40 (#3104)
* deps: upgrade OS to Fedora 40

* image: measure uki sections uname and sbat for systemd >= 254

* deps: update mainline kernel for Fedora 40

* image: update kernel to 6.6.30

* image: update upload docs

---------

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2024-05-16 09:10:09 +02:00
Malte Poll
7eedd0e3de
cli: simplify log message on init call (#3105) 2024-05-15 16:17:12 +02:00
renovate[bot]
36a827056f
deps: update softprops/action-gh-release action to v2 (#3103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 10:54:37 +02:00
Daniel Weiße
87e112085f
renovate: group all Terraform dependency updates into one PR (#3101)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-15 10:31:20 +02:00
edgelessci
36141b149c
image: update measurements and image version (#3100)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-15 09:36:01 +02:00
renovate[bot]
af64f99bfe
deps: update google-github-actions/auth action to v2.1.3 (#3094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 09:28:58 +02:00
renovate[bot]
ed54277f78
deps: update actions/download-artifact action to v4 (#3096)
* deps: update actions/download-artifact action to v4

* Update slsa generator action to v2

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-05-15 09:26:10 +02:00
renovate[bot]
73d86c25df
deps: update azure/login action to v2 (#3097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 09:05:50 +02:00
renovate[bot]
d5d5ea857d
deps: update github/codeql-action action to v3 (#3099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 09:05:38 +02:00
renovate[bot]
62baa9bed2
deps: update cachix/install-nix-action action to v26 (#3098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 08:59:07 +02:00
renovate[bot]
c866e3d670
deps: update actions/checkout action to v4 (#3095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 08:58:56 +02:00
Daniel Weiße
8219005587
terraform: only set confidential_instance_type if cc_technology is SEV_SNP (#3085)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-14 16:02:30 +02:00
Markus Rudy
8e3cf5a270
s3proxy: commit image version on release, too (#3093) 2024-05-14 15:45:06 +02:00
Malte Poll
93fcb51e67 ci: explicitly set bazel test timeout to four hours for e2e tests
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2024-05-14 13:34:50 +02:00
Thomas Tendyck
547d435aca deps: remove replacement of go-tpm with fork 2024-05-14 10:25:08 +02:00
Markus Rudy
43e6b85026
ci: only assign reviewer to bot PRs (#3091) 2024-05-14 10:02:00 +02:00
Markus Rudy
c0a39eab89
deps: bump stackit terraform provider to 0.17.0 (#3089) 2024-05-14 09:46:40 +02:00
renovate[bot]
93daf811d7
deps: update Go dependencies (#3087)
* deps: update Go dependencies

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-05-14 08:15:57 +02:00
Daniel Weiße
4f1768e660
cloud: hide kubernetes iptables usage behind linux build tag (#3088)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-13 13:22:22 +02:00
renovate[bot]
d76c9ac82d
deps: update GitHub action dependencies (#3086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 10:42:07 +02:00
renovate[bot]
dda426a51e
deps: update ubuntu:22.04 Docker digest to a6d2b38 (#3084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 10:18:56 +02:00
renovate[bot]
10a2bca9f9 deps: update fedora:38 Docker digest to b9ff6f2 2024-05-13 09:37:54 +02:00
Malte Poll
39805a41ba deps: update Bazel 2024-05-13 08:47:15 +02:00
Malte Poll
57ad6f6bc5 deps: update flakes 2024-05-13 08:47:15 +02:00
Malte Poll
cfaba0b1c3 misc: update golangci-lint related changes 2024-05-13 08:47:15 +02:00
Malte Poll
dfeeb788ec deps: update distroless base 2024-05-13 08:47:15 +02:00
Malte Poll
fcf233492e deps: update skylib 2024-05-13 08:47:15 +02:00
Malte Poll
58238f5a0a deps: update rules_nixpkgs 2024-05-13 08:47:15 +02:00
Malte Poll
ccdc87ad74 deps: update bazel_tools 2024-05-13 08:47:15 +02:00
Malte Poll
f67292d0de deps: update hermetic_cc 2024-05-13 08:47:15 +02:00
Malte Poll
5b6f8d838e deps: update rules_go / gazelle 2024-05-13 08:47:15 +02:00
Malte Poll
c540feb209 deps: update CI deps 2024-05-13 08:47:15 +02:00
Malte Poll
e79c74cd97 deps: update buildifier 2024-05-13 08:47:15 +02:00
Malte Poll
9116d2b82a deps: update aspect/bazel-lib 2024-05-13 08:47:15 +02:00
edgelessci
d0bb738607
image: update measurements and image version (#3074)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-13 08:39:52 +02:00
edgelessci
19cf9b7f40
image: update locked rpms (#3080)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-05-12 17:16:47 +02:00
Malte Poll
4fec2dba99 deps: update LTS kernel 6.7.6 -> 6.8.9 2024-05-10 18:27:40 +02:00
Malte Poll
1e8f08e350 deps: update LTS kernel 6.1.79 -> 6.1.90 2024-05-10 18:27:40 +02:00
Malte Poll
03475b60b3
ci: disable BuildBuddy (#3077) 2024-05-10 11:14:45 +02:00
Malte Poll
97e5c437b4
deps: update bazel buildtools (#3075) 2024-05-10 11:10:14 +02:00
renovate[bot]
1ead19e69a
deps: update ghcr.io/edgelesssys/cloud-provider-gcp Docker tag to v29.0.1 (#3073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-10 09:57:07 +02:00
Markus Rudy
174c3ab48a
terraform: add missing policies for AWS ALB (#3063)
* terraform: add missing policies for AWS ALB
2024-05-10 08:51:32 +02:00
renovate[bot]
fffc9db2b5
deps: update Kubernetes versions (#3072)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-05-09 13:38:01 +02:00
3u13r
0325483504
helm: disable cilium ipmasq agent when in conformance mode (#3062) 2024-05-08 18:51:12 +02:00
Daniel Weiße
9def35ed06
deps: update all Go dependencies (#3071)
* Upgrade Go dependencies

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Group Go dependency upgrades

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Remove usage of deprecated docker types

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Fix usage of invalid validation tags

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Regenerate bazel files

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Keep github.com/bazelbuild/buildtools at old version to not break other dependencies

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-08 17:31:47 +02:00
Malte Poll
1c0c7d6227
ci: disable e2e-attestationconfigapi on PRs (#2937)
This workflow touches shared state by deleting all objects of a bucket and then
uploading a signed blob of data to that S3 bucket under a fixed name.
It also does so multiple times in a row, while invalidating the cloudfront
cache and checking if the uploaded object exists.
All runs of this workflow share the same bucket.
Since this pipeline runs on any modification of go.mod, it is very prone
to race condition between PRs (or PRs and main).
2024-05-08 14:59:03 +02:00
renovate[bot]
adf03ad76c
deps: update GitHub action dependencies (#3070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-08 14:33:35 +02:00
Daniel Weiße
86c45d1d5f
deps: update to Go 1.22.3 (#3069)
* Update renovate syntax
* Update to Go 1.22.3

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-08 11:34:31 +02:00
Daniel Weiße
a15cf54477
ci: use 7zip for creating archives (#3068)
* Use 7zip for creating and processing encrypted archives
* Switch to .7z file extension
* Fix shell check issues
* Fix tfstate update logic

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-08 10:34:10 +02:00
Daniel Weiße
edc0c7068e
ci: fix delete artifact conditional (#3067)
* Fix state exists check
* Dont fail if folder to remove does not exist

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-07 08:48:38 +02:00
Thomas Tendyck
012937740f
Update action.yml 2024-05-07 01:52:35 +02:00
3u13r
ecebd607c5
terraform: Allow nodes to join the cluster when using a jump host by removing the constellation-uid tag (#3064)
* terraform: remove constellation-uid tag from jump-host
2024-05-06 12:25:52 +02:00
edgelessci
3241e5a126
image: update locked rpms (#3065)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-05-05 17:25:51 +02:00
miampf
bd26cb592d
ci: correctly clean up failed windows e2e tests (#3059) 2024-05-03 10:54:08 +00:00
Daniel Weiße
f6999084c9
terraform: set empty default value for additional_tags (#3052)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-03 10:27:46 +02:00
Daniel Weiße
47fbbd42a9
Fix tool not generating measurements for gcp-sev-snp (#3061)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-03 09:52:57 +02:00
edgelessci
96b71b0205
image: update measurements and image version (#3060)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-03 09:28:57 +02:00
Daniel Weiße
35bd805bec
ci: enable gcp-sev-snp for daily tests (#3058)
* Run gcp-sev-snp debug e2e test in daily
* Fix verify e2e test not creating json file for gcp-sev-snp

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-03 08:18:21 +02:00
Daniel Weiße
259e85d9c1
ci: reduce noise from warnings (#3055)
* Fix whitespace errors
* Remove usage of external action to URI encode component
* Upgrade Azure login action to v2.1
* Remove GitHub actions warning when running e2e test with NOP payload
* Only try to upload updated tf state if it exists
* Upgrade out of date aws credential actions

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-05-03 08:17:40 +02:00
edgelessci
3d2a023ccf
image: update measurements and image version (#3057)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-05-02 08:20:51 +02:00
Felix Schuster
7d46d0f7d6
Small changes in docs/README (#3050)
* Change concept image

* Add sentence to "first steps"
2024-04-30 16:01:56 +02:00
Moritz Sanft
002c6fa5a4
snp: don't print warning if no ASK is present (#3048)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-04-29 14:38:34 +02:00
renovate[bot]
c1740b17d9
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20240314 (#3042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 11:01:21 +02:00
Markus Rudy
9101417ef8
dev-docs: howto generate kubeconfigs (#3047) 2024-04-26 14:58:38 +02:00
Malte Poll
5ec1b1f488
deps: upgrade terraform provider stackit to 0.16.0 (#3046) 2024-04-26 14:02:35 +02:00
miampf
0c0d87aa4c
ci: Delete e2e terraform state (#2874) 2024-04-26 10:06:01 +00:00
Daniel Weiße
46994b7ee0
terraform: simplify additional tagging logic to ensure they are always applied (#3045)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-26 11:53:25 +02:00
Daniel Weiße
680d3318af
ci: ensure --tags flag is only set if the CLI supports it (#3044)
* Use github.run_id to correctly tag resources with the run id
* Ensure `--tags` flag is only set if CLI supports it

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-26 09:34:21 +02:00
edgelessci
0df26c0e9b
image: update measurements and image version (#3043)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-26 08:05:44 +02:00
renovate[bot]
3ea0e3a487
deps: update K8s constrained AWS versions (#2938)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-04-25 15:49:50 +02:00
renovate[bot]
0f6491f3c7
deps: update K8s constrained Azure versions (#2941)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-04-25 15:48:46 +02:00
renovate[bot]
f00890ab1e
deps: update module k8s.io/kubernetes to v1.29.4 [SECURITY] (#3039)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-04-25 14:03:24 +02:00
miampf
3f7a4e4313
ci: tag resources created by e2e tests with the run name (#3035) 2024-04-25 12:02:23 +00:00
edgelessci
591aba99fd
image: update measurements and image version (#3040)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-24 08:16:45 +02:00
Daniel Weiße
056f991f58
ci: add missing permission for e2e-windows test in weekly run (#3037)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-22 15:21:56 +02:00
Daniel Weiße
4635a6c8b1
attestation: dont set a default for TDX MRSEAM (#3038)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-22 14:07:24 +02:00
edgelessci
a7451fbe1c
image: update locked rpms (#3036)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-04-22 09:39:09 +02:00
miampf
b187966581
cli: allow tagging cloud resources with custom tags (#3033) 2024-04-19 09:07:57 +00:00
edgelessci
f60c133724
image: update measurements and image version (#3034)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-19 08:30:06 +02:00
Markus Rudy
9b52ec403b
deps: auto-assign reviewer for deps PRs (#3032)
* deps: auto-assign reviewer for deps PRs

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2024-04-17 20:38:32 +02:00
Moritz Sanft
35e19a45bb
ci: disable SEV-SNP tests that need stable images (#3031) 2024-04-17 09:12:52 +02:00
edgelessci
ea17af3dcc
image: update measurements and image version (#3030)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-17 08:18:39 +02:00
Moritz Sanft
913b09aeb8
Support SEV-SNP on GCP (#3011)
* terraform: enable creation of SEV-SNP VMs on GCP

* variant: add SEV-SNP attestation variant

* config: add SEV-SNP config options for GCP

* measurements: add GCP SEV-SNP measurements

* gcp: separate package for SEV-ES

* attestation: add GCP SEV-SNP attestation logic

* gcp: factor out common logic

* choose: add GCP SEV-SNP

* cli: add TF variable passthrough for GCP SEV-SNP variables

* cli: support GCP SEV-SNP for `constellation verify`

* Adjust usage of GCP SEV-SNP throughout codebase

* ci: add GCP SEV-SNP

* terraform-provider: support GCP SEV-SNP

* docs: add GCP SEV-SNP reference

* linter fixes

* gcp: only run test with TPM simulator

* gcp: remove nonsense test

* Update cli/internal/cmd/verify.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update docs/docs/overview/clouds.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update terraform-provider-constellation/internal/provider/attestation_data_source_test.go

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* linter fixes

* terraform_provider: correctly pass down CC technology

* config: mark attestationconfigapi as unimplemented

* gcp: fix comments and typos

* snp: use nonce and PK hash in SNP report

* snp: ensure we never use ARK supplied by Issuer (#3025)

* Make sure SNP ARK is always loaded from config, or fetched from AMD KDS
* GCP: Set validator `reportData` correctly

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* attestationconfigapi: add GCP to uploading

* snp: use correct cert

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: enable fetching of attestation config values for GCP SEV-SNP

* linter fixes

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2024-04-16 18:13:47 +02:00
Daniel Weiße
485ebb151e
kubecmd: retry any k8s errors in CLI and Terraform (#3028)
* Retry any k8s errors in CLI and Terraform
* Use structured logging in `kubecmd` package

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-16 15:12:42 +02:00
Markus Rudy
f189aa186f
dev-docs: document security advisory process (#3024)
* dev-docs: document security advisory process
2024-04-15 11:49:23 +02:00
edgelessci
456279c896
image: update locked rpms (#3026)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-04-15 07:44:24 +02:00
edgelessci
41e4f144ed
image: update measurements and image version (#3023)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-12 08:24:28 +02:00
davidweisse
e89d8e4d72
ci: add error handling to e2e windows liveness probe (#3018)
* workflows: add error handling to e2e windows liveness probe

* update retry condition in last iteration

* Update liveness probe to check for correct number of nodes

* ci: fix Windows e2e test not pushing required container images (#3021)

* More output when waiting for nodes to get ready
* Create unique resource group name for Windows e2e test
* Push container images on windows CLI build to fix e2e test

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Fix resource group naming

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2024-04-11 11:27:12 +02:00
Markus Rudy
f6dfea2a79
helm: unbreak helm test after Cilium version bump (#3022) 2024-04-11 09:38:15 +02:00
Markus Rudy
550798279a
Merge pull request from GHSA-g8fc-vrcg-8vjg
* helm: firewall pods

* helm: bump cilium chart version

---------

Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-04-10 13:48:32 +02:00
Daniel Weiße
6e31223ff9
ci: suppress license check on windows e2e (#3020)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-10 10:51:09 +02:00
edgelessci
7bdd4c2449
image: update measurements and image version (#3019)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-10 08:25:16 +02:00
Daniel Weiße
cddbba1898
ci: bump fromVersion for e2e tests to v2.16.2 (#3016)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-08 11:13:44 +02:00
Moritz Eckert
c3eae84fbb
docs: update images with inter font (#2995) 2024-04-08 07:28:01 +02:00
edgelessci
2c70867bc2
image: update locked rpms (#3017)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-04-07 10:30:01 +02:00
Daniel Weiße
a2737e8f61
ci: bump slsa-verifier to v2.5.1 (#3015)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-05 21:00:33 +02:00
edgelessci
249148abe2
image: update measurements and image version (#3013)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-05 15:23:44 +02:00
Daniel Weiße
408eb31422
ci: fix slsa generator action by updating to new version (#3014)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-04-05 14:29:52 +02:00
Malte Poll
2a226fd8e9
deps: update Go toolchain to 1.22.2 (#3010)
* deps: update Go toolchain to 1.22.2
* deps: update vulnerable dependencies (govulncheck)
2024-04-05 12:14:48 +02:00
Moritz Sanft
b38a8f4d49
rfc: remove broken link (#3012) 2024-04-05 11:42:36 +02:00
miampf
840f460bac
logging: unify debug log message format (#2997) 2024-04-03 13:49:03 +00:00
Malte Poll
24c346c657
bazel: patch Go SDK to increase tls maxHandshake size (#3009) 2024-04-03 14:08:45 +02:00
edgelessci
638a94c7c6
image: update measurements and image version (#3008)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-03 08:28:45 +02:00
Thomas Tendyck
d8d2cd48c1 ci: disable license check for minicon e2e 2024-04-02 17:21:22 +02:00
Malte Poll
93441fe1ee
terraform: update terraform provider STACKIT (#3007) 2024-04-02 17:17:17 +02:00
edgelessci
3ebf66554f
image: update locked rpms (#3005)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-04-02 09:23:39 +02:00
edgelessci
d6ac1967c5
image: update measurements and image version (#3004)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-04-02 08:44:25 +02:00
miampf
febe8f0801
ci: add a delete artifact action (#2999) 2024-03-25 13:36:09 +00:00
renovate[bot]
4ca9db156b
deps: update module github.com/docker/docker to v25.0.5+incompatible [SECURITY] (#2998)
* deps: update module github.com/docker/docker to v25.0.5+incompatible [SECURITY]

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-03-25 09:35:56 +01:00
edgelessci
367b278002
image: update measurements and image version (#3000)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-03-25 08:19:58 +01:00
edgelessci
309bc83831
image: update locked rpms (#3002)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-03-24 19:59:45 +01:00
Thomas Tendyck
b97f2b905a
ci: fix unwanted license checks for some e2e test configs (#3001)
* ci: fix unwanted license checks for some e2e test configs

* fixup! ci: fix unwanted
2024-03-22 20:45:45 +01:00
edgelessci
89f311dac1
image: update measurements and image version (#2996)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-03-20 08:35:26 +01:00
Daniel Weiße
0da6f0d014
ci: fix pvc clean-up on non deletable namespaces (#2994)
* Only delete namespace if its deletable
  * For "default" namespace, delete all resources in that namespace
  * For "kube-system" namespace, delete all PVCs in that namespace
* Don't abort terminate action if PVC deletion fails

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-03-19 14:53:58 +01:00
Daniel Weiße
dc86a30988
provider: Add build tag for Terraform provider (#2992)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-03-18 14:30:56 +01:00
edgelessci
6a2dffc379
image: update locked rpms (#2991)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-03-18 09:44:44 +01:00
Markus Rudy
1a10cf645d
ci: query identity directly instead of searching in list (#2985)
* ci: add debug information when UAMI is missing

* ci: query identity directly instead of searching in list
2024-03-18 08:40:15 +01:00
3u13r
0b13c5bca9
operator: escape dots in url (#2990) 2024-03-15 22:44:10 +01:00
Moritz Eckert
c40e1a9bbd
docs: change to inter font (#2989) 2024-03-15 15:38:34 +01:00
Thomas Tendyck
9e3d605cf2
Add STACKIT to readme (#2988)
* Add STACKIT to readme

and sort CSPs alphabetically in sentences

* fix links
2024-03-15 11:53:13 +01:00
Moritz Eckert
912575eb31
docs: order csp strictly alphabetically (#2986) 2024-03-15 10:13:57 +01:00
edgelessci
e0bbb447a9
image: update measurements and image version (#2987)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-03-15 07:54:20 +01:00
Markus Rudy
54af083da3
helm: retry uninstall manually if atomic install failed (#2984) 2024-03-14 10:52:11 +01:00
Adrian Stobbe
1334b84c2e
Update docs (#2982)
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-03-13 14:09:51 +01:00
Markus Rudy
85b44f7f57
ci: make waiting for nodes more robust (#2981)
* ci: make waiting for nodes more robust

After initializing the cluster, a lot of things happen in parallel and
are potentially getting in each others' way: nodes are joining,
daemonsets are proliferating, the network is being set up. During this
period, it's not unusual that the Kubernetes API server is unavailable
for a short time, e.g. due to etcd loosing quorum or load balancing
changes.

This period of instability has the potential to affect all kubectl
commands negatively, leading to problems especially for tests, where
command failures often lead to test failures. On the other hand, we'd
expect everything to be quite stable after the initial dust settles.

Therefore, this commit changes how we wait after initializing a cluster.
Until we have a reasonable expectation of readiness, we ignore command
failures and wait for things to stabilize. The cluster is considered
stable once all configured nodes and all API servers report ready.
2024-03-13 09:42:18 +01:00
edgelessci
3b8fa95648
image: update measurements and image version (#2983)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-03-13 09:08:44 +01:00
Daniel Weiße
1077b7a48e
bootstrapper: wipe disk and reboot on non-recoverable error (#2971)
* Let JoinClient return fatal errors
* Mark disk for wiping if JoinClient or InitServer return errors
* Reboot system if bootstrapper detects an error
* Refactor joinClient start/stop implementation
* Fix joining nodes retrying kubeadm 3 times in all cases
* Write non-recoverable failures to syslog before rebooting

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-03-12 11:43:38 +01:00
Malte Poll
1b973bf23f
docs: remove steps for STACKIT credentials in config (#2980)
The OpenStack credentials (username and password) can now be retrieved
from the "clouds.yaml" by the Constellation CLI and terraform code.
This simplifies the configuration for end-users.
2024-03-12 07:27:45 +01:00
Malte Poll
25624e91e8
docs: add runtime measurement table for Constellation v2.16 (#2979) 2024-03-12 07:27:26 +01:00
Malte Poll
35260a4455 docs: document OpenStack related config files on Windows 2024-03-11 16:43:36 +01:00
Malte Poll
353b02c17c docs: document STACKIT CC features
Co-Authored-By: Moritz Eckert <m1gh7ym0@gmail.com>
2024-03-11 16:43:36 +01:00
Malte Poll
63b9761962 docs: explain recovery steps on STACKIT 2024-03-11 16:43:36 +01:00
Malte Poll
220f292181 docs: mention all zones where STACKIT instances are available 2024-03-11 16:43:36 +01:00
Malte Poll
addcfaaaf4 terraform: ignore changes of OpenStack instance image 2024-03-11 16:43:36 +01:00
Malte Poll
923a41ba01 openstack: move credentials to instance user data 2024-03-11 16:43:36 +01:00
Malte Poll
7fb2a357d9 docs: add STACKIT to the terraform provider page 2024-03-11 15:59:23 +01:00
Malte Poll
c23f17de41 openstack: read credentials from clouds.yaml 2024-03-11 15:59:23 +01:00
Malte Poll
d69673fab7 terraform-provider: Add support for STACKIT / OpenStack 2024-03-11 15:59:23 +01:00
Malte Poll
1670d977c6 openstack: vendor clouds.yaml Go type definitions from gophercloud v2 beta 2024-03-11 15:59:23 +01:00
Malte Poll
6ddabd025d openstack: rename client type 2024-03-11 15:59:23 +01:00
malt3
9c5f231f4a image: update locked rpms 2024-03-11 09:35:10 +01:00
Daniel Weiße
27330490f3
cli: retry auth handshake deadline exceeded errors in CLI and Terraform (#2976)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-03-08 13:15:06 +01:00
Malte Poll
52e4e64316 docs: add installation instructions for the Windows CLI variant 2024-03-08 10:45:36 +01:00
edgelessci
483c888a3c
image: update measurements and image version (#2975)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-03-08 08:40:29 +01:00
Malte Poll
108784c580 openstack: improve error message on IMDS failures 2024-03-07 11:47:51 +01:00
Malte Poll
7f262d18a8 imagefetcher: allow any marketplace image for OpenStack 2024-03-07 11:47:51 +01:00
Malte Poll
56460f0d63 image: special case OpenStack serial console to include ttyS1 2024-03-07 11:47:51 +01:00
Malte Poll
f94b00fe7c disk-mapper: write failure message to syslog and sleep before reboot 2024-03-07 11:47:51 +01:00
Malte Poll
5e241bcb45 deps: update Go to v1.22.1 2024-03-06 14:50:01 +01:00
Malte Poll
281c7c320c deps: update protobuf to v1.33.0 2024-03-06 14:50:01 +01:00
Markus Rudy
03fbcafe68
bootstrapper: bounded retry of k8s join (#2968) 2024-03-05 09:14:01 +01:00
Malte Poll
8b41bcaecc cli: correct measurements in config generate stackit 2024-03-04 18:17:26 +01:00
Malte Poll
f94c6ca0d4 misc: skip message about community license with marketplace image 2024-03-04 18:17:26 +01:00
Malte Poll
1c8a7e4c22 cli: add STACKIT to constellation config instance-types 2024-03-04 18:17:26 +01:00
Daniel Weiße
d5b3d4fd6f
ci: use collision resistant name for Terraform e2e test (#2967)
* Use collision resistant name for Terraform e2e test
* Remove test suffix from Terraform provider examples

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-03-04 13:48:30 +01:00
malt3
06da526fe0 image: update locked rpms 2024-03-04 10:23:14 +01:00
Malte Poll
fc08e50605
docs: update STACKIT flavors (#2964) 2024-03-01 10:59:06 +01:00
edgelessci
d8a8d9b6b9
image: update measurements and image version (#2963)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-03-01 08:31:34 +01:00
Malte Poll
c513c3f40c ci: v2.16 post-release cleanup 2024-02-29 18:36:07 +01:00
malt3
c4f27f62ee docs: add release v2.16.0 2024-02-29 17:22:19 +01:00
Malte Poll
93eb8f0694
release: use cosign sign-blob in non-interative mode (#2953) 2024-02-29 09:40:13 +01:00
Malte Poll
0b6eeb3747
ci: match version of actions/download-artifact for slsa provenance (#2957) 2024-02-29 09:39:41 +01:00
Malte Poll
f5c5413284 terraform: use volumes instead of ephemeral local disks on STACKIT
Ephemeral local disks are discouraged on STACKIT.
Use volumes instead.
This sets an upper bound of 5GB on the boot disk.
If Constellation OS images ever grow beyond that, we will run into
problems.
2024-02-28 15:48:53 +01:00
Malte Poll
5e40f49ca4 docs: update STACKIT instance types 2024-02-28 15:48:53 +01:00
Malte Poll
3ce10eb00f terraform: allow STACKIT / OpenStack instance type to be UUID or name 2024-02-28 15:48:53 +01:00
edgelessci
79aaa77b6b
image: update measurements and image version (#2950)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-02-28 10:02:33 +01:00
Daniel Weiße
80518379c4
ci: fix artifact naming problems in e2e test (#2948)
* Fix potentially artifact naming in weekly tests
* Use e2e prefix for artifact naming in e2e-benchmark

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-27 08:59:22 +01:00
Malte Poll
6f60cee6f9
deps: update Linux LTS and mainline kernel (#2947)
LTS: 6.1.79
Mainline: 6.7.6
2024-02-26 16:59:34 +01:00
Malte Poll
7bc4ad5728 deps: update all terraform providers 2024-02-26 13:38:33 +01:00
edgelessci
0336cd4faa
image: update locked rpms (#2946)
Co-authored-by: malt3 <1780588+malt3@users.noreply.github.com>
2024-02-25 09:54:09 +01:00
Malte Poll
4b3d9e15a5 docs: add STACKIT 2024-02-23 13:32:22 +01:00
edgelessci
b2ab5869b3
image: update measurements and image version (#2943)
Co-authored-by: katexochen <49727155+katexochen@users.noreply.github.com>
2024-02-23 09:33:12 +01:00
renovate[bot]
ae0e00383b
deps: update module helm.sh/helm/v3 to v3.14.2 [SECURITY] (#2944)
* deps: update module helm.sh/helm/v3 to v3.14.2 [SECURITY]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-02-23 09:26:36 +01:00
Malte Poll
ae4b2a9182 docs: point to new URL for rocket chat blog post 2024-02-23 08:57:57 +01:00
Thomas Tendyck
31baba2d4b docs: remove broken links and publish removal of cloud logging 2024-02-23 08:57:57 +01:00
3u13r
2a61861a1c
stackit: add k8s api load balancer (#2925) 2024-02-22 17:39:34 +01:00
renovate[bot]
62acec17f6
deps: update Constellation containers (#2921)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-02-22 14:04:42 +01:00
Malte Poll
00d39ff7fa helm: update edgelesssys cinder-csi-plugin 2024-02-22 12:43:04 +01:00
Malte Poll
31f65fb486 openstack: find node CIDR with multiple subnets 2024-02-22 12:43:04 +01:00
Malte Poll
d8185fdafb helm: use patched yawol with support for subnet choice
Constellation requires a CIDR that only Kubernetes nodes live in.
This is needed for cilium encryption.
To make yawol LBs work, they need to be placed in a different subnet
with their own CIDR.
This patched version supports that.
2024-02-22 12:43:04 +01:00
Malte Poll
1e987f6a85 terraform: add subnet for OpenStack LBs 2024-02-22 12:43:04 +01:00
Malte Poll
9d164de18b
helm: avoid waiting for non-essential services (#2939)
In our e2e tests, we see a lot of "etcd-leader changed" errors
while deploying non-essential helm charts.
If this transient error occurs, helm gets into a broken state
where it cannot uninstall cleanly and thus any retry attempts fail.
By not waiting for the installation of helm charts to succeed,
we can avoid making most of the kubernetes API calls while
control-plane nodes are joining.
This makes "constellation apply" faster and more resilient.
2024-02-22 12:18:55 +01:00
renovate[bot]
5674d9742a
deps: update Constellation containers (#2936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-22 09:12:18 +01:00
Malte Poll
522f2858c6 proto: update generated protobuf sources 2024-02-21 18:40:16 +01:00
Malte Poll
71c8a27539 deps: replace use of deprecated module azsecrets
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets -> github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets
2024-02-21 18:40:16 +01:00
Malte Poll
8541365341 sigstore: replace use of deprecated module go-tuf 2024-02-21 18:40:16 +01:00
Malte Poll
ffdf23e3f2 libvirt: replace use of deprecated types 2024-02-21 18:40:16 +01:00
Malte Poll
6a467e5594 deps: update all Go deps 2024-02-21 18:40:16 +01:00
Malte Poll
65903459a0 chore: fix unused parameter lint in new golangcilint version 2024-02-21 17:54:07 +01:00
Malte Poll
68fc2b0811 deps: update all Bazel toolchains / rule deps 2024-02-21 17:54:07 +01:00
Malte Poll
2300a31276 deps: update all 3rdparty github actions 2024-02-21 17:53:53 +01:00
renovate[bot]
cdd80a4f3f
deps: update dependency containernetworking/plugins to v1.4.0 (#2896)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-02-21 17:42:48 +01:00
miampf
96c5980651
cli: collect debug logs in file (#2906) 2024-02-21 15:39:12 +00:00
Daniel Weiße
7edd6259d1
ci: fix duplicate benchmark artificat name (#2934)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-21 15:34:30 +01:00
Markus Rudy
98a1cfa2ca
ci: fetch latest console logs on aws (#2926) 2024-02-21 13:46:25 +01:00
renovate[bot]
abf6b4924a deps: update Python dependencies 2024-02-21 13:32:15 +01:00
Malte Poll
59faa2b692 attestation: add hardcoded OpenStack enterprise measurements 2024-02-21 13:31:32 +01:00
katexochen
70ff097e12 image: update measurements and image version 2024-02-21 08:49:20 +01:00
Malte Poll
38ef546362 deps: update Go to 1.22.0 2024-02-20 18:27:16 +01:00
Markus Rudy
fe85877679
debugd: enable debug logging for systemd units (#2923) 2024-02-20 14:44:14 +01:00
Malte Poll
889677c795 image: update mkosi and use package directory feature 2024-02-20 12:50:13 +01:00
Malte Poll
5ef12895fa bazel: remove deprecated Bazel container
It doesn't work properly with nix and a nix shell exists for all developers.
2024-02-20 12:50:13 +01:00
Malte Poll
77ecd8d4ce nix: fix bazel under NixOS 2024-02-20 12:50:13 +01:00
Malte Poll
a4d25646f5 deps: update to bazel 7 2024-02-20 12:50:13 +01:00
Malte Poll
c6e0714a42 deps: update go-git 2024-02-20 10:00:38 +01:00
Malte Poll
980b2f0e87 ci: login to OpenStack provider 2024-02-19 18:16:45 +01:00
Malte Poll
75f16ce87b image: upload OpenStack images to OpenStack 2024-02-19 18:16:45 +01:00
Malte Poll
6f9020d527 cli: use pre-uploaded image on OpenStack
Before, the terraform infrastructure code would upload an image on the fly.
Now, we upload images in advance and specify the image ID instead.
2024-02-19 18:16:45 +01:00
renovate[bot]
3b2da12781
deps: update Constellation containers (#2919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 16:14:05 +01:00
Moritz Sanft
ffb1ef9185
ci: fix artifact overwriting in upgrade test (#2913) 2024-02-19 15:12:04 +01:00
renovate[bot]
cdf1282996
deps: update dependency cryptography to v42.0.2 [SECURITY] (#2916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 15:11:19 +01:00
edgelessci
a337e323a5
image: update locked rpms (#2917)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-02-18 11:12:28 +01:00
Moritz Sanft
68cfa0addf
ci: update fromVersion to v2.15.1 (#2914) 2024-02-16 13:35:57 +01:00
renovate[bot]
75f1c0b3e1
deps: update registry.k8s.io/autoscaling/cluster-autoscaler Docker tag to v1.27.5 (#2761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-16 13:26:59 +01:00
edgelessci
bc4d514fb1
image: update measurements and image version (#2912)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-02-16 08:49:16 +01:00
renovate[bot]
7980689e82
deps: update module helm.sh/helm/v3 to v3.14.1 [SECURITY] (#2911)
* deps: update module helm.sh/helm/v3 to v3.14.1 [SECURITY]

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2024-02-15 18:01:36 +01:00
Markus Rudy
473001be55
vpn: ship our own container image (#2909)
* vpn: ship our own container image

The container image used in the VPN chart should be reproducible and
stable. We're sticking close to the original nixery.dev version by
building the image with nix ourselves, and then publishing the single
layer from the result with Bazel OCI rules. The resulting image should
be handled similar to s3proxy: it's built as a part of the Constellation
release process and then consumed from a Helm chart in our registry.

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2024-02-15 13:08:27 +01:00
Malte Poll
896f68c26d helm: update edgelesssys cinder-csi-plugin 2024-02-15 12:35:15 +01:00
Malte Poll
92589a80e2 helm: update yawol 2024-02-15 12:35:15 +01:00
Malte Poll
6c8504323f terraform: update OpenStack provider 2024-02-15 12:35:15 +01:00
Daniel Weiße
f9442cecb1
helm: fix log formatting (#2905)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-14 08:52:46 +01:00
edgelessci
6829c27178
image: update measurements and image version (#2908)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-02-14 08:25:10 +01:00
Malte Poll
270497ef62
helm: move yawol into a separate release (#2904) 2024-02-12 14:26:22 +01:00
Malte Poll
b5e848a87e terraform: provide required configuration for yawol on OpenStack 2024-02-12 13:13:48 +01:00
Malte Poll
bab27fbc69 openstack: remove unused code 2024-02-12 13:13:48 +01:00
Daniel Weiße
c5b17fb828
ci: prevent duplicate artifact naming in same workflow (#2903)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-12 09:56:53 +01:00
edgelessci
d3b3f45534
image: update locked rpms (#2902)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-02-11 10:57:51 +01:00
Malte Poll
dba835bdf4
openstack: prepare for normal users (#2899)
* image: disable serial console autologin on OpenStack
* cli: remove requirement for CONSTELLATION_OPENSTACK_DEV env var
2024-02-09 14:48:41 +01:00
Malte Poll
5b73d48bdd
helm: insert openstack secret for ccm (#2897) 2024-02-09 11:14:44 +01:00
katexochen
a89133ae81 image: update measurements and image version 2024-02-09 08:11:46 +01:00
miampf
54cce77bab
deps: convert zap to slog (#2825) 2024-02-08 14:20:01 +00:00
renovate[bot]
3765cb0762
deps: update actions/upload-artifact and actions/download-artifact action to v4 (#2756)
* deps: update actions/upload-artifact action to v4
* deps: update actions/download-artifacts action to v4

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-07 14:50:15 +01:00
renovate[bot]
b1dc427108
deps: update dependency cryptography to v42 [SECURITY] (#2894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-07 13:57:49 +01:00
edgelessci
bd3eed8504
image: update measurements and image version (#2895)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-02-07 08:19:43 +01:00
Moritz Sanft
901edd420b
terraform: remove cloud loggers (#2892)
* terraform: remove cloud logging apps

* internal/cloud: remove loggers

* bootstrapper: remove logging

* qemu-metadata-api: remove logging endpoint

* docs: add instructions on how to get boot logs

* bazel: tidy

* docs: fix typo

* cloud: remove unused types

* Update go.mod

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* bazel: tidy

* Update docs/docs/workflows/troubleshooting.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/troubleshooting.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/troubleshooting.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* docs: elaborate on how to get boot logs

* bazel: tidy

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-02-06 14:27:30 +01:00
Moritz Sanft
dde3430da8
terraform: support AWS marketplace images (#2888)
* terraform: support AWS marketplace images

* terraform-provider: support AWS marketplace images

* docs: add instructions on AWS marketplace images

* ci: adapt marketplace image test for AWS

* Update internal/config/config.go

Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>

* docs: update config

* Update docs/docs/getting-started/marketplaces.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* docs: update license information

* docs: use CSP tabs for marketplace overview

* Update docs/docs/getting-started/marketplaces.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/getting-started/marketplaces.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/getting-started/marketplaces.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

---------

Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-02-06 12:13:59 +01:00
Daniel Weiße
64c32c2236
ci: make instance type configurable for provider sample (#2893)
* Make default instance type configurable for provider sample
* Set TDX instance type when running TDX provider e2e test
* Fix missing attestation variant when setting up stub config in provider e2e test

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-05 15:46:57 +01:00
Daniel Weiße
f21252c57d
ci: fix workspace related errors when setting up k8s version for test (#2891)
* Fail workflow on error in subshell
* Remove relative paths from workflow
* Set up MMA only for SEV-SNP, not for Azure TDX

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-05 13:29:03 +01:00
Malte Poll
18acd0b12a
deps: update go-uefi and use new authenticode package (#2873) 2024-02-05 12:06:48 +01:00
edgelessci
70c0a1969d
image: update locked rpms (#2890)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-02-05 11:37:34 +01:00
Markus Rudy
c020f7ac20
cleanup: various minor debugging improvements (#2889)
* ci: improve constellation_create error message

When we hit a timeout due to nodes not coming up, the actual error
message is hard to make out because it's buried in a group. With the
right formatting, the error message will be highlighted in the UI.

Another improvement is to output the state of nodes, which helps
debugging the cause of nodes not joining or not becoming ready.

* cleanup: use NodeVersionResourceName constant

... instead of literal strings.

* ci: correctly notify on e2e upgrade error

* atls: report cert extension OIDs on mismatch

If the certificate contains an attestation document for SEV-SNP, but the
given validator is for Nitro, verifyEmbeddedReport should not claim that
there is no attestation document, but that there is no _compatible_ one
and what the incompatible ones were.
2024-02-02 16:46:28 +01:00
edgelessci
711b53d5c0
image: update measurements and image version (#2886)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-02-02 09:10:12 +01:00
Moritz Sanft
d5e4435e3d
ci: reduce amount of regular tests (#2885)
* .github: add e2e test to pr checklist

* ci: use sonobuoy quick where possible

* ci: run malicious join test on release

* ci: remove self managed infra test

* ci: remove non-example terraform test from weekly

* ci: run Sonobuoy full on the latest k8s version weekly

* ci: run weekly sonobuoy quick on all k8s versions

* ci: don't run double sonobuoy tests on latest k8s version
2024-02-01 15:05:07 +01:00
Daniel Weiße
befc7cdf63
ci: don't delete local cached providers when uploading Terraform state (#2884)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-02-01 09:54:40 +01:00
Adrian Stobbe
5ecc5ed9c9
terraform-provider: fix integration test (#2882) 2024-01-31 18:24:05 +01:00
Adrian Stobbe
9b547bced0
ci: v2.15 post-release cleanup (#2881)
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2024-01-31 16:45:20 +01:00
miampf
eabcdbe931
ci: Upload e2e terraform state as artifact (#2853) 2024-01-31 15:22:05 +00:00
Moritz Sanft
2140fa5452
deps: update GCP to 5.13.0 (#2872) 2024-01-31 15:29:59 +01:00
edgelessci
fafb9886b0
docs: add release v2.15.0 (#2875)
Co-authored-by: elchead <elchead@users.noreply.github.com>
2024-01-31 15:29:01 +01:00
Adrian Stobbe
d873ddb09d
fix self managed azure tdx (#2878) 2024-01-31 08:18:51 +01:00
Markus Rudy
32d3b4e87c
ci: introduce keep-sorted (#2836)
Long lists of items in source code or config can be hard to work with as
a human, most problematic being out-of-order entries in an otherwise
ordered list. This is where keep-sorted comes to the rescue: we can
leave two little comments on every listing we care about, and
keep-sorted ensures that the listing stays in order.

This commit also applied keep-sorted to the CODEOWNERS file, hopefully
demonstrating its usefulness to some extent. I'd expect more uses for
keep-sorted to be discovered organically over time.

keep-sorted is super fast, so it should not be a problem to add it to
the //:tidy target, even if we scan all files in the code base. On my
MacBook:

$ time (find . -not -path "./.git/*" -type f | sort | xargs "${keep_sorted}" --mode fix)

real	0m0.249s
user	0m0.124s
sys	0m0.129s
2024-01-30 14:39:49 +01:00
Adrian Stobbe
efc7290454
ci: fix upload CLI path line splitting (#2877) 2024-01-30 09:26:40 +01:00
Daniel Weiße
40c4109dc2
ci: fix empty run-id in OpenSearch URL (#2876)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-30 08:57:27 +01:00
Adrian Stobbe
489e07677e
ref: pre v2.15 cleanup (#2871) 2024-01-29 21:32:37 +01:00
Adrian Stobbe
3799525103
ci: set board fields for tf example test (#2867) 2024-01-29 16:45:26 +01:00
Adrian Stobbe
7ce5caae24
terraform-provider: only print license warning once in provider (#2865)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-01-29 15:21:30 +01:00
Markus Rudy
f78f5540bc
ci: pin the kube-bench plugin definitions for sonobuoy (#2861) 2024-01-29 14:50:27 +01:00
Moritz Eckert
2413356375
image: replicate to us-east-1 for aws marketplace (#2870) 2024-01-29 14:44:33 +01:00
Daniel Weiße
f5a2b58a76
ci: run provider upgrade test only once (#2869)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-29 12:59:38 +01:00
Daniel Weiße
d372130bfd
ci: safely set attestation variant in OpenSearch URL (#2864)
* Add attestation variant to notify hooks
* Quote all inputs in OpenSearch URL
* Add clusterCreation field to OpenSearch URL
* Omit empty fields in OpenSearch URL

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-29 11:52:41 +01:00
edgelessci
6d4a8d594e
image: update measurements and image version (#2866)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-29 11:27:13 +01:00
edgelessci
b9f33fc05b
image: update locked rpms (#2863)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-29 09:19:39 +01:00
edgelessci
0d69e4e645
image: update measurements and image version (#2856)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-26 18:05:29 +01:00
Malte Poll
e2e3935896 image: use different replication regions for SNP and TDX 2024-01-26 17:58:08 +01:00
Malte Poll
d205c15dff flake: update to incorporate uplosi updates 2024-01-26 17:58:08 +01:00
Daniel Weiße
64e5efb49d Fix evaluation statement
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-26 17:06:28 +01:00
Daniel Weiße
d17e7459db Choose TDX supported region for TDX tests
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-26 17:06:28 +01:00
Daniel Weiße
ecae1c8f9a Fix default instanceType generation
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-26 17:06:28 +01:00
Daniel Weiße
65d28f913f Allow starting e2e tests based on attestation variant instead of csp
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-26 17:06:28 +01:00
Markus Rudy
597a923a7f
cilium: performance fixes and reproducible images (#2855)
* helm: bump cilium version

* helm: patch Cilium chart version
2024-01-26 17:03:40 +01:00
Daniel Weiße
78b9b0fc96
terraform-provider: enable Azure TDX (#2854)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-26 15:46:21 +01:00
renovate[bot]
d58d888f54 deps: update dependency Pillow to v10.2.0 [SECURITY] 2024-01-26 15:41:44 +01:00
Moritz Eckert
d6639f7788
add azure region germany west central 2024-01-26 10:04:59 +01:00
edgelessci
49a806a874
image: update measurements and image version (#2859)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-26 08:15:43 +01:00
Moritz Eckert
26f6fd074f
ci: fix e2e_benchmark comparison 2024-01-25 11:12:32 +01:00
Adrian Stobbe
77276cb4ca
add provider example test to weekly (#2840) 2024-01-25 11:09:27 +01:00
Markus Rudy
9fb6c3216e
helm: remove kube-rbac-proxy (#2849) 2024-01-25 10:06:40 +01:00
Adrian Stobbe
4431ac3233
ci: fix missing quotes in Opensearch link (#2852) 2024-01-24 17:29:19 +01:00
Malte Poll
d3cffa9fee
image: update Linux to 6.1.74 (#2851) 2024-01-24 17:10:56 +01:00
Daniel Weiße
e350ca0f57
attestation: add Azure TDX attestation (#2827)
* Implement Azure TDX attestation primitives
* Add default measurements and claims for Azure TDX
* Enable Constellation on Azure TDX

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-24 15:10:15 +01:00
Moritz Sanft
e07ea4b40f
operator: fix get-handling of Azure marketplace images (#2846)
* operator: support getting MP images

* operator: support getting MP node image

* operator: refactorings
2024-01-24 10:22:40 +01:00
Moritz Eckert
da26daeb49
docs: update clouds and marketplaces
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-01-24 09:57:35 +01:00
Thomas Tendyck
ad5ff6e1bb ci: update vale 2024-01-24 09:07:19 +01:00
edgelessci
6ae59bb986
image: update measurements and image version (#2848)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-24 08:22:48 +01:00
Malte Poll
c8ffba0366 measurements: update expected PCR[1] on GCP 2024-01-23 21:55:12 +01:00
Malte Poll
a2e2f0387c measurements: correctly override validation options 2024-01-23 21:55:12 +01:00
3u13r
2a7a9dc2aa
helm: re-enable native routing for gcp (#2842) 2024-01-23 14:46:24 +01:00
Moritz Sanft
5faa374ede
terraform-provider: validate pod ip cidr only on gcp (#2838) 2024-01-23 09:08:23 +01:00
Adrian Stobbe
4db0662b06
ci: remove broken label from OpenSearch query link (#2839) 2024-01-23 08:32:02 +01:00
edgelessci
fc1c9b7c1a
image: update locked rpms (#2835)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-22 14:07:26 +01:00
Malte Poll
3a5753045e goleak: ignore rules_go SIGTERM handler
rules_go added a SIGTERM handler that has a goroutine that survives the scope of the goleak check.
Currently, the best known workaround is to ignore this goroutine.

https://github.com/uber-go/goleak/issues/119
https://github.com/bazelbuild/rules_go/pull/3749
https://github.com/bazelbuild/rules_go/pull/3827#issuecomment-1894002120
2024-01-22 13:11:58 +01:00
Malte Poll
66faa5493f deps: Go 1.21.6 2024-01-22 13:11:58 +01:00
Malte Poll
f465356ace nix: update flake.lock 2024-01-22 13:11:58 +01:00
Malte Poll
64a4a2230d deps: update gazelle and rules_go 2024-01-22 13:11:58 +01:00
Malte Poll
e40d1e56d8 deps: update hermetic_cc_toolchain 2024-01-22 13:11:58 +01:00
Malte Poll
00eacdf9e8 image: mark image upload as manual bazel target 2024-01-22 13:11:58 +01:00
Moritz Sanft
0030a26eaf
ci: parallelize upgrade e2e test (#2724)
* ci: parallelize upgrade e2e test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* ci: revert name change

* ci: upgrade checkout action

* ci: add target version before building target cli

* ci: rename input

* ci: upload service account key

* ci: download sa key on GCP

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2024-01-19 16:34:47 +01:00
edgelessci
3b02edcc48
image: update measurements and image version (#2833)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-19 09:12:24 +01:00
edgelessci
2acbd10ef7
image: update measurements and image version (#2831)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-17 18:55:10 +01:00
Malte Poll
b8933560be
image upload: use unique blob name for AWS images uploaded to S3 (#2830)
When uploading images to AWS, they need to be uploaded to S3 first.
Since blob names are not unique between attestation variants, there
was a possibility for one S3 upload to be used for the wrong AMI.
2024-01-17 17:09:07 +01:00
edgelessci
6259815869
image: update measurements and image version (#2828)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-17 08:11:53 +01:00
Malte Poll
9d6321faa3 uplosi: use separate galleries for Azure TDX and TDX 2024-01-16 17:34:44 +01:00
Malte Poll
52dec77508 nix: update uplosi to support Azure TDX 2024-01-16 17:34:44 +01:00
Malte Poll
336ba6bc34 attestation: add Azure TDX variant
Only a stub for now.
2024-01-16 17:34:44 +01:00
Malte Poll
5063b815f1 config: allow Azure TDX instance types 2024-01-16 17:34:44 +01:00
Malte Poll
403acf75aa image: add mainline kernel and azure tdx image target 2024-01-16 17:34:44 +01:00
Markus Rudy
e29ea77d23
helm: bump Cilium chart version (#2822)
* helm: bump Cilium chart version

* helm: generate Cilium chart
2024-01-16 14:49:24 +01:00
Markus Rudy
16c63d57cd
dev-docs: Helm chart for full L3 VPN connectivity (#2620)
* dev-docs: add 'things to try' section to VPN howto

* dev-docs: full L3 connectivity in VPN chart
2024-01-16 13:59:33 +01:00
Malte Poll
9181705299
ci: use sonobuoy 0.57.1 (#2821) 2024-01-16 13:19:46 +01:00
Markus Rudy
2d3996d5b3
ci: don't check Wireguard weblinks (#2823) 2024-01-15 15:45:45 +01:00
Moritz Sanft
bf02680477
ci: mirror GCP images to MPI project on release (#2820) 2024-01-15 13:58:30 +01:00
Malte Poll
9a27e7bf77 image: only archive release images + QEMU / OpenStack image 2024-01-15 13:53:15 +01:00
Malte Poll
8a74893461 ci: build and upload OS image in single job 2024-01-15 13:53:15 +01:00
Malte Poll
5ec03c5b9d image: add upload rules for images 2024-01-15 13:53:15 +01:00
Malte Poll
f237ae8ae2 bazel: add upload_os_images rule
This rule combines uplosi, the upload command, measurement code and cosign
to upload OS images, extract measurements, sign them and upload the measurements.
2024-01-15 13:53:15 +01:00
Malte Poll
b7bab7c3c8 image: replace "upload {aws|azure|gcp}" with uplosi 2024-01-15 13:53:15 +01:00
Malte Poll
fb392c2d50 image: add image uploader that uses uplosi in the background
This implementation will replace the custom Go code in
internal/osimage/{aws|azure|gcp} and still conforms to the same interface.
2024-01-15 13:53:15 +01:00
Malte Poll
181b8f64d2 image: add static (per-CSP) measurements during "measurement envelope"
This logic was previously performed in a GitHub Actions workflow
using yq.
Since every step should now be performed in Bazel, this now needs to happen here.
2024-01-15 13:53:15 +01:00
Malte Poll
f7b22f3705 bazel: add tool dependencies for image upload 2024-01-15 13:53:15 +01:00
Markus Rudy
711dff37a4
ci: fetch OpenSearch password from e2e test project (#2818) 2024-01-15 13:25:15 +01:00
edgelessci
84a90bb5bd
image: update locked rpms (#2819)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-15 10:46:50 +01:00
Adrian Stobbe
60a0a6020e
ci: add upgrade to provider example test (#2775) 2024-01-13 13:13:10 +01:00
edgelessci
2fea43a320
image: update measurements and image version (#2817)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-12 08:20:15 +01:00
Markus Rudy
bdca822d8a
ci: remove derpsteb from e2e assignee list (#2816) 2024-01-12 08:09:38 +01:00
3u13r
120ae9d227
image: lower file limit for containerd (#2815) 2024-01-11 12:47:38 +01:00
Adrian Stobbe
9a814f91b1
terraform-provider: validate microservice and image version during plan (#2814) 2024-01-11 12:04:21 +01:00
Adrian Stobbe
baad7d8310
aws sev snp resolves latest version values on GetAttestationConfig (#2810) 2024-01-10 13:32:13 +01:00
Markus Rudy
b267457541
ci: fix OpenSearch link for e2e notifications (#2813)
* ci: fix OpenSearch link for e2e notifications
2024-01-10 09:49:47 +01:00
edgelessci
c61507f220
image: update measurements and image version (#2812)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-10 08:13:30 +01:00
Markus Rudy
49ecb2415f
ci: remove reference to absent go.mod file (#2811) 2024-01-09 23:07:16 +01:00
Malte Poll
e618050c7a
bazel: add directories to ignore (#2805) 2024-01-09 21:46:53 +01:00
Markus Rudy
ef6f63dc48
Fix various small things throughout the codebase (#2800)
* bootstrapper: remove obsolete log statement

* ci: simplify variable usage

Co-authored-by: Daniel Weiße <daniel-weisse@users.noreply.github.com>

* cli: add missing formatting directive

* helm: fix rm invocation

* ci: document reproducible-builds workflow

* constants: use variables for measurement files

* constants: use variables for CDN distribution ID

* ci: make Helm version explicit

* api: prettify versionsapi-list output

* ci: remove obsolete docstring

---------

Co-authored-by: Daniel Weiße <daniel-weisse@users.noreply.github.com>
2024-01-09 19:37:56 +01:00
3u13r
badcdcb764
deps: bump cilium to v1.15.0-pre.3-edg.1 (#2808) 2024-01-09 16:45:56 +01:00
renovate[bot]
bacb8ff886
deps: update AWS SDK (#2809)
* deps: update AWS SDK

* deps: fix AWS SDK upgrade breakage

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Markus Rudy <mr@edgeless.systems>
2024-01-09 16:18:33 +01:00
Malte Poll
a8bca88eeb
k8s: add 1.29, remove 1.26, default 1.28 (#2803)
undefined
2024-01-08 16:53:12 +01:00
Moritz Sanft
e691e26bd3
cli: support for GCP marketplace images (#2792)
* cli: support GCP marketplace images

* ci: support GCP marketplace images

* docs: support GCP marketplace images

* bazel: generate

* ci: allow GCP for mpi e2e test

* Update docs/docs/overview/license.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* terraform-provider: allow GCP MPIs

* terraform-provider: fix error message

---------

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2024-01-08 15:51:39 +01:00
Malte Poll
d3b951300d
ci: explicitly build s3proxy container image tag before referencing (#2806)
Otherwise, the file might not exist.
2024-01-08 14:32:08 +01:00
Daniel Weiße
7d778d1b5b Add required kubernetes_version attribute to example
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-08 13:52:55 +01:00
Daniel Weiße
1271e95c0c Fix missing Kubernetes version for Terraform e2e test
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-08 13:52:55 +01:00
Daniel Weiße
90f3336c8e
deps: remove go.mod files from submodules (#2769)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2024-01-08 13:19:38 +01:00
Malte Poll
0dae7908a7 bazel: remove stale bash completion file 2024-01-08 10:44:38 +01:00
Malte Poll
362d07fc52 nix: allow dev setup via direnv 2024-01-08 10:44:38 +01:00
edgelessci
a23e838a01
image: update locked rpms (#2802)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2024-01-08 08:52:52 +01:00
Moritz Eckert
2af34ceaf4
docs: update asciinema videos (#2777) 2024-01-08 07:35:48 +01:00
Moritz Sanft
d525be4a49
terraform: add module deprecation notice (#2739) 2024-01-07 22:44:08 +01:00
Malte Poll
c936ec510d
ci: reproducible builds test on artifacts v2 (#2801)
* ci: test download-artifacts@v4 for reproducible builds test

* ci: reproducible builds test: use unique artifact names and patterns
2024-01-05 16:57:21 +01:00
Markus Rudy
8e8e861d5f
ci: ignore Wireguard pdf in lychee (#2797)
* ci: use a config file for lychee

* ci: don't pass token to lychee action

* ci: ignore wireguard.pdf in lychee
2024-01-05 14:07:33 +01:00
Malte Poll
3a4f6ef9d1
bazel: use prebuilt Go toolchain (go.dev/dl) (#2796)
We had to switch to a Go toolchain from nixpkgs,
since prebuilt Go toolchain versions were not usable on NixOS.
Since Go 1.21, the prebuilt Go toolchain is statically linked
and works out of the box.

Reference: https://github.com/golang/go/issues/57007
2024-01-05 11:52:22 +01:00
Markus Rudy
c23aef344d
ci: don't export e2e metrics to OpenSearch (#2794)
* ci: don't export e2e metrics to OpenSearch
* debugd: don't export metrics
2024-01-05 10:15:53 +01:00
renovate[bot]
136a69e7c8
deps: update actions/setup-python action to v5 (#2755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 09:29:16 +01:00
edgelessci
cbf744a095
image: update measurements and image version (#2795)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2024-01-05 09:27:11 +01:00
Adrian Stobbe
f41ce43919
terraform-provider: require kubernetes and microservice version (#2791) 2024-01-04 16:25:24 +01:00
3u13r
26a9639bcf
e2e: dynamically create rg resource group for minicon (#2793) 2024-01-04 16:01:57 +01:00
Adrian Stobbe
8730e72319
ci: e2e test for Terraform provider examples (#2745) 2024-01-04 10:00:21 +01:00
3u13r
15cc7b919b
Add pod disruption budgets so the cluster-autoscaler is able to move kube-admin namespaced resources (#2781)
* helm: refactor cilium helm values

* helm: add pod disruption budgets
2024-01-03 18:00:42 +01:00
3u13r
0167a4a286
helm: remove konnectivity agents (#2790) 2024-01-03 14:09:32 +01:00
edgelessci
3d8e548dcd
image: update measurements and image version (#2789)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2024-01-03 13:08:45 +01:00
Adrian Stobbe
9826ab2e89
node-operator: fix setting Azure node image (#2788) 2024-01-03 12:12:16 +01:00
3u13r
45479b307e
helm: masq traffic to the mini-qemu-metadata container so that the join-service can retrieve it's metadata (#2782)
* helm: masq traffic to the mini-qemu-metadata container

* ci: fix waiting for nodes in miniconstellation e2e test
2024-01-02 14:33:03 +01:00
edgelessci
4d8f45cff6
image: update locked rpms (#2784)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-12-31 13:42:45 +01:00
Thomas Tendyck
2895766d02 docs: mention TF provider more prominently 2023-12-30 15:44:11 +01:00
3u13r
07c884b945
ci: remove artifact encryption for public artifacts (#2776)
* ci: remove artifact encryption for public artifacts

* revert parts of  #2765

* ci: add unused action exception for encrypted artifact download
2023-12-29 11:02:37 +01:00
Adrian Stobbe
539e6eac48
ci: give exec permission to provider binaries (#2779) 2023-12-28 10:19:47 +01:00
Adrian Stobbe
903411edae
fix Terraform release zipping (#2778) 2023-12-27 17:43:57 +01:00
3u13r
2f10223682
terraform-provider: fix parsing api_server_cert_sans (#2758)
* tf: don't double quote cert sans

* tf: improve provider examples
2023-12-27 17:04:35 +01:00
edgelessci
2ce73c19dc
image: update locked rpms (#2773)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-12-24 09:53:47 +01:00
Markus Rudy
130bed0eb2 ci: selectively remove artifact encryption 2023-12-22 17:50:40 +01:00
renovate[bot]
c8fc04d991
deps: update Kubernetes versions (#2762)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-12-22 14:10:39 +01:00
Moritz Sanft
5871ff5508
ci: adhere to action restriction when uploading scorecard (#2771) 2023-12-22 13:13:20 +01:00
Adrian Stobbe
436e7c6d3b
terraform-provider: validate image and microservice version (#2766) 2023-12-22 10:24:13 +01:00
Daniel Weiße
519efe637d
constellation-lib: run license check in Terraform provider and refactor code (#2740)
* Clean up license checker code

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Create license check depending on init/upgrade actions

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Run license check in Terraform provider

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* fix license integration test action

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Run tests with enterprise tag

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Allow b64 encoding for license ID

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Update checker_enterprise.go

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-12-22 10:16:36 +01:00
Adrian Stobbe
ac1f322044
terraform-provider: only build as enterprise user (#2770)
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-12-22 08:38:28 +01:00
Markus Rudy
837b24bf54
versions: generate k8s image patches (incl etcd) (#2764)
* versions: generate k8s image patches (incl etcd)
2023-12-21 20:56:55 +01:00
Daniel Weiße
8c1972c335
ci: fix artifact upload in image build pipeline (#2765)
* Fix parameter expansion when uploading multiple files
* On download, ensure target directory exists
* Rename encryption-secret -> encryptionSecret
* Remove incorrect secret access from e2e test action
* Add missing checkout action to workflows using our download action
* Fix spacing
* Fix upload action uploading whole directory structure instead of target files
* Explicitly give write permissions to Azure disk image, since permissions are no longer dropped on upload

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-21 19:28:18 +01:00
Malte Poll
66c0b581b2
ci: update bash on darwin to support newer bash features (#2672) 2023-12-21 18:12:07 +01:00
Daniel Weiße
6e4c0bd8aa
ci: fix artifacts download/upload for release draft workflow (#2759)
* Pin upload and download actions by hash
* Dont expect encrypted artifacts in release pipeline

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-21 15:52:58 +01:00
Daniel Weiße
945152d049
Revert "deps: update actions/download-artifact action to v4 (#2753)" (#2767)
This reverts commit b550c92ac930d4b5a757aa04c865f9442f6b119a.
2023-12-21 15:44:40 +01:00
renovate[bot]
8644b958ea
deps: update actions/setup-go action to v5 (#2754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-21 12:54:39 +01:00
renovate[bot]
37ec431fab
deps: update K8s dependencies (#2763)
* deps: update K8s dependencies

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-12-21 12:42:04 +01:00
renovate[bot]
b550c92ac9
deps: update actions/download-artifact action to v4 (#2753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-21 08:44:52 +01:00
renovate[bot]
5999f9e3a1
deps: update cachix/install-nix-action action to v24 (#2757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-21 08:43:44 +01:00
renovate[bot]
1409d4aa3f
deps: update dependency aspect_bazel_lib to v2.0.3 (#2751)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 18:10:49 +01:00
renovate[bot]
ced03202a9
deps: update fedora:38 Docker digest to 3f01c8f (#2749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 18:07:20 +01:00
renovate[bot]
110bf9103d
deps: update Constellation containers (#2760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 18:03:44 +01:00
renovate[bot]
dcf1b88a29
deps: update actions/checkout action to v4 (#2752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 16:10:35 +01:00
renovate[bot]
d0cfd5590d
deps: update dependency cryptography to v41.0.6 [SECURITY] (#2657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 16:04:15 +01:00
renovate[bot]
ec813b2102
deps: update golang:1.21.5 Docker digest to 1a9d253 (#2750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 15:59:39 +01:00
renovate[bot]
4f374fbeb2
deps: update module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 to v5 (#2748)
* deps: update module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 to v5
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-12-20 15:58:55 +01:00
Moritz Sanft
82e2875927
terraform-provider: add input validation (#2744)
* terraform-provider: add validation for `constellation_image`

* terraform-provider: add validation for `constellation_cluster`

* image: accept short path versions

* terraform-provider: correct error statement

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* terraform-provider: remove superfluous log statements

* terraform-provider: fix error assertion casing

* terraform-provider: remove superfluous semver check

* Update terraform-provider-constellation/internal/provider/shared_attributes.go

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-12-20 15:56:48 +01:00
renovate[bot]
db65f5116d
deps: update dependency rules_python to v0.27.1 (#2591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 15:42:36 +01:00
miampf
a429ca50e7
ci: encrypt artifacts (#2567) 2023-12-20 14:17:49 +00:00
Adrian Stobbe
0e84c6cc3e
update release process (#2747) 2023-12-20 14:42:20 +01:00
Markus Rudy
54c2fa1b3d ci: start v2.15-pre window 2023-12-20 08:52:18 +01:00
Markus Rudy
004aa6c5ed ci: fix release branch naming 2023-12-20 08:29:50 +01:00
Markus Rudy
85a13fab19 ci: correctly pass branch names in on-release workflow 2023-12-20 08:29:50 +01:00
Markus Rudy
607aa6dbe1 ci: allow on-release workflow to delete branches 2023-12-20 08:29:50 +01:00
Markus Rudy
7f8cfb8f03 operators: fix flaky env test 2023-12-19 20:01:10 +01:00
Markus Rudy
3c05150721 ci: don't run unit tests in integration test workflow 2023-12-19 20:00:21 +01:00
Markus Rudy
441672cbdc ci: add burgerdev to e2e failure assignees 2023-12-19 19:59:16 +01:00
edgelessci
6b2c00693c
docs: add release v2.14.0 (#2734)
Co-authored-by: burgerdev <burgerdev@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-12-19 17:05:40 +01:00
Malte Poll
ae6b22a143
deps: update rules_oci to a pre-release version to fix memory leak (#2729)
rules_oci spawns local container registry processes and in the past,
those would not be cleaned up explicitly, leading to an accumulation
of processes when using remote execution with buildbarn.
This pre-release contains a fix: https://github.com/bazel-contrib/rules_oci/pull/421
Additionally, windows support for rules_oci was removed in this fork,
since it is currently broken.
2023-12-19 15:40:04 +01:00
renovate[bot]
6c5170da79
deps: update module golang.org/x/crypto to v0.17.0 [SECURITY] (#2736)
* deps: update module golang.org/x/crypto to v0.17.0 [SECURITY]
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-12-19 08:53:15 +01:00
Markus Rudy
1d05f438ff ci: remove Windows Terraform provider 2023-12-18 17:57:00 +01:00
Moritz Sanft
9414f29b51
terraform-provider: lock-step microservice version (#2733) 2023-12-18 14:21:19 +01:00
Markus Rudy
615e731855 upgrade-agent: pass patches to kubeadm 2023-12-18 14:17:35 +01:00
Markus Rudy
ce9e25c150 bootstrapper: pass patches to kubeadm 2023-12-18 14:17:35 +01:00
Markus Rudy
070c23f876 operators: pass additional components to upgrade-agent 2023-12-18 14:17:35 +01:00
Markus Rudy
6f1b6b532f upgrade-agent: allow more than one KubernetesComponent 2023-12-18 14:17:35 +01:00
Markus Rudy
4ba483ec0e versions: add Kubernetes image patches to components 2023-12-18 14:17:35 +01:00
Markus Rudy
b740a1a75b versions: designate components for upgrades 2023-12-18 14:17:35 +01:00
Moritz Sanft
7c5b95bbcc
terraform-provider: warn about microservice version changes (#2730)
* terraform-provider: update data source examples

* terraform-provider: warn about destructive microservice changes

* terraform-provider: use `name` variable

* terraform-provider: only perform pre-apply checks on upgrades

* terraform-provider: fix conditional

* terraform-provider: remove obsolete version checks
2023-12-18 13:55:44 +01:00
Daniel Weiße
f2c1bdbf82
ci: remove conditional from AWS login in e2e verify test (#2727)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-18 11:51:50 +01:00
edgelessci
086b42b08f
image: update locked rpms (#2726)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-12-18 11:02:42 +01:00
Moritz Sanft
af791bd221
terraform-provider: add usage examples (#2713)
* terraform-provider: add usage example for Azure

* terraform-provider: add usage example for AWS

* terraform-provider: add usage example for GCP

* terraform-provider: update usage example for Azure

* terraform-provider: update generated documentation

* docs: adjust creation on Azure and link to examples

* terraform-provider: unify image in-/output (#2725)

* terraform-provider: check for returned error when converting microservices

* terraform-provider: use state values for outputs after creation

* terraform-provider: ignore invalid upgrades (#2728)

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-12-18 10:15:54 +01:00
Adrian Stobbe
88d626d302
feat: pin cert-manager image to sha256 checksum (#2721) 2023-12-18 09:28:50 +01:00
3u13r
183c564483
cilium: enable bpf masquerading (#2723)
* cilium: enable bpf masquerading

* cilium: also enable ipMasqAgent

* cilium: remove custom Azure masqing
2023-12-15 23:07:03 +01:00
3u13r
0111b6d718
deps: Update cert manager to 1.12.6 (#2700)
* deps: bump cert manager to 1.13.2

* helm: allow minor jump for cert-manager
2023-12-15 17:44:00 +01:00
Daniel Weiße
a1f67d0884
cli: fix upgrades when using outdated Kubernetes patch version (#2718)
* Fix missing image for Constellation operators in our Helm charts if the desired Kubernetes patch version is no longer supported (but Kubernetes upgrades are skipped)
* Correctly unmarshal Kubernetes Components list if the list uses an old format

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-15 15:45:52 +01:00
Daniel Weiße
724ee44466
ci: Terraform provider e2e tests (#2712)
* Refactor selfManagedInfra input to clusterCreation in e2e tests
* Run e2e test using terraform provider
* Allow insecure measurement fetching in Terraform provider
* Run Terraform provider test instead of module test in weekly runs

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-15 10:37:29 +01:00
Adrian Stobbe
9667dfff58
terraform: align infrastructure module attributes (#2703)
* all vars have snail_case

* make iam schema consistent

* infrastructure schema

* terraform: update AWS infrastructure module

* fix ci

* terraform: update AWS infrastructure module

* terraform: update AWS IAM module

* terraform: update Azure Infrastructure module inputs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: update Azure IAM module

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: update GCP infrastructure module

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: update GCP IAM module

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: update OpenStack Infrastructure module

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: update QEMU Infrastructure module

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-module: fix input name

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: tidy

* cli: ignore whitespace in Terraform variable tests

* terraform-module: fix AWS output names

* terraform-module: fix output references

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: rename `api_server_cert_sans`

* Update terraform/infrastructure/aws/modules/public_private_subnet/variables.tf

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* fix self-managed

* terraform: revert AWS modules output file renaming

* terraform: remove duplicate varable declaration

* terraform: rename Azure location field

* ci: adjust output name in self-managed e2e test

* e2e: continuously print output in upgrade test

* e2e: write to output variables

* cli: migrate IAM variable names

* cli: make `location` field optional

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-12-15 10:36:58 +01:00
edgelessci
6f6f28b8cc
image: update measurements and image version (#2722)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-12-15 08:18:25 +01:00
edgelessci
2c50abcc91
image: update measurements and image version (#2720)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-12-14 19:35:40 +01:00
Malte Poll
b3601fcf32 nix: update mkosi to work around tar unpacking issue 2023-12-14 18:18:07 +01:00
Malte Poll
f487c2a6d0 image: update Linux to 6.1.68
Changelogs:

https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.65
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.66
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.67
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.68
2023-12-14 18:18:07 +01:00
Adrian Stobbe
37580009fe
terraform-provider: cleanup and improve docs (#2685)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-12-14 15:47:55 +01:00
Daniel Weiße
9a4e96905f
bazel: place Terraform provider binaries in local registry path on devbuild (#2714)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-14 08:18:48 +01:00
Malte Poll
fecb1f3e6c ci: reproducibility test for OS images 2023-12-13 18:19:59 +01:00
Malte Poll
58e7af5364 image: create package manifest in chroot
rpm doesn't work properly when run on the host.
2023-12-13 18:19:59 +01:00
Malte Poll
23e456a265 nix: update flake and use mkosi with sorted cpio 2023-12-13 18:19:59 +01:00
Malte Poll
1209d597d8 ci: test reproducible builds on different Linux systems
macOS is not working reliably at the moment.
2023-12-13 18:19:59 +01:00
3u13r
1d6e5ca3ea
terraform: use correct security group option for jump host (#2715) 2023-12-13 18:05:25 +01:00
Markus Rudy
ae00b0a198 installer: add support for data URLs
RFC 015 proposes the introduction of data URLs to materialize static
content to files on disk. This commit adds support for data URLs to the
installer. The corresponding content will be added to versions.go in a
subsequent commit.
2023-12-13 09:35:19 +01:00
edgelessci
8d8853ef31
image: update measurements and image version (#2711)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-12-13 09:23:38 +01:00
3u13r
53516c105b
Revert "helm: deprioritize Cilium tc filters" (#2709)
This reverts commit a3de1d95d95aa70f7e51ba386e26b0522ac4ae11.
2023-12-12 16:56:41 +01:00
3u13r
1e63ce8bb1
deps: tidy terraform-provider (#2710) 2023-12-12 16:40:08 +01:00
Moritz Sanft
0a593bec18
terraform: upgrade random provider to v3.6.0 (#2704)
* terraform: upgrade `random` provider to `v3.6.0`

* terraform: update lockfiles

* ci: fix Terraform lock exclude directories
2023-12-12 16:00:16 +01:00
Moritz Sanft
367136add2
terraform-provider: support importing Constellation clusters (#2702)
* terraform-provider: support importing Constellation clusters

* bazel: shfmt exclusion for import script

* ci: fix godot check

* bazel: shellcheck exclusion for import script

* Update dev-docs/workflows/terraform-provider.md

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* ci: fix Terraform lock exclude directories

---------

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-12-12 16:00:03 +01:00
Daniel Weiße
d08e75bf9c
constellation-lib: fix incorrect encoding and ordering of Init response (#2708)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-12 15:01:56 +01:00
Daniel Weiße
0512cfccd7
ci: add v prefix to packaged Terraform provider binary (#2705)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-12 15:01:37 +01:00
Adrian Stobbe
4c8041d2cf
bazel: used sed from nixpkgs (#2706)
This is required since sed on macos has different flags and may behave differently.

Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-12-12 14:46:11 +01:00
renovate[bot]
6db0318b2f
deps: update module github.com/docker/docker to v24.0.7+incompatible [SECURITY] (#2541)
* deps: update module github.com/docker/docker to v24.0.7+incompatible [SECURITY]

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-12-12 13:34:28 +01:00
Markus Rudy
a53017ecc4 upgrade-agent: set explicit k8s version
`kubeadm upgrade plan` takes an optional positional argument for the
target Kubernetes version [1], which is documented as

> To skip the internet check, pass in the optional [version] parameter

In light of RFC 015, we should not do an "internet check" for latest
versions, but stick to the version we're actually targeting with the
upgrade. Thus, we explicitly pass the version as an argument.

[1]: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/#cmd-upgrade-plan
2023-12-11 20:11:26 +01:00
Moritz Sanft
60fc73e0e7
terraform-provider: implement constellation_cluster resource (#2691)
* terraform: move module to legacy-directory

* constellation-lib: refactor service account marshalling

* terraform-provider: normalize Azure image URIs

* constellation-lib: refactor Kubeconfig endpoint rewriting

* terraform-provider: add conversion functions for AWS and GCP

* terraform-provider: implement `constellation_cluster` resource

* terraform-provider: refactor conversion

* terraform-provider: implement image and k8s upgrades

* terraform-provider: fix linter checks

* terraform-provider: refactor to bundle init & upgrade method

* constellation-lib: rewrite Kubeconfig endpoint in init

* terraform-provider: bind logger and dialer constructors to struct

* terraform-provider: move applier to function pointer

* terraform-provider: gcp conversion fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: fix Azure UAMI input

* terraform-provider: rename Kubeconfig variable

* terraform-provider: tidy

* terraform-provider: regenerate docs

* constellation-lib: provide Kubeconfig in testing initserver

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-12-11 15:55:44 +01:00
Markus Rudy
767bac4766 installer: fix old-style Components references 2023-12-11 15:13:00 +01:00
Daniel Weiße
22dcde86af
terraform-provider: create release in provider repo on Constellation release (#2686)
* Create release in Terraform provider repo with provider binaries
* Set target_commitish to input ref for easier release workflow
* Rename release-cli workflow to draft-release
* Update release guide

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-11 15:00:08 +01:00
Markus Rudy
138057a2ee installer: make hash checking optional 2023-12-11 14:28:19 +01:00
Markus Rudy
dac4bb04f2 ci: disable curses support
Comparison of output for a failed build. Old setup produces >3k lines of
unhelpful messages:

https://github.com/edgelesssys/constellation/actions/runs/7165242775/job/19506817413

Without curses support, we get <400 lines with relevant details:

https://github.com/edgelesssys/constellation/actions/runs/7166031624/job/19509201790
2023-12-11 14:27:31 +01:00
Markus Rudy
a1dbd13f95 versions: consolidate various types of Components
There used to be three definitions of a Component type, and conversion
routines between the three. Since the use case is always the same, and
the Component semantics are defined by versions.go and the installer, it
seems appropriate to define the Component type there and import it in
the necessary places.
2023-12-11 14:26:54 +01:00
Daniel Weiße
a8fb6c5af0
ci: remove invalid input for recover action (#2695)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-11 09:34:17 +01:00
Moritz Sanft
6ff321364d
terraform: fix Azure marketplace image defaults (#2692)
* config: default to false instead of null for Azure marketplace image

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: make Azure marketplace image default to null

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-12-11 08:15:47 +01:00
edgelessci
acba9c4c60
image: update locked rpms (#2693)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-12-10 16:03:03 +01:00
Daniel Weiße
272584a34c
constellation-lib: move state and featureset packages (#2682)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-08 16:27:04 +01:00
Daniel Weiße
92fac8b9d6
docs: replace reference to CMakeList on main branch with versioned link or Bazel (#2690)
* Replace reference to CMakeList on main branch with versioned link or Bazel
* Allow Bazel as a valid word

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-08 16:13:39 +01:00
Moritz Sanft
c15e4efef6
terraform: Azure Marketplace image support (#2651)
* terraform: add Azure marketplace variable

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* config: add Azure marketplace variable

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* cli: use Terraform variables from config

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: pass down marketplace variable

* image: pad Azure images to 1GiB

* terraform: add version attribute to marketplace image

* semver: allow versions to be exported without prefix

* cli: boolean var to use marketplace images

* config: remove dive key

* dev-docs: add instructions on how to use marketplace images

* terraform: fix unit test

* terraform: only fetch image for non-marketplace images

* mpimage: refactor image selection

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [remove] increase minor version for image build

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform: ignore changes to source_image_reference on upgrade

* operator: add support for parsing Azure marketplace images

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* upgrade: fix imagefetcher call

* docs: add info about azure marketplace

* image: ensure more than 1GiB in size

* image: test to pad to 2GiB

* version: change back to v2.14.0-pre

* image: GPT-conformant image size padding

* [remove] increase version

* mpimage: inline prefix func

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* ci: add marketplace image e2e test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [remove] register workflow

* ci: fix workflow name

* ci: only allow azure test

* cli: add marketplace image input to interface

* cli: fix argument passing

* version: roll back to v2.14.0

* ci: add force-flag support

* Update docs/docs/overview/license.md

* Update dev-docs/workflows/marketplace-images.md

Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-12-08 14:40:31 +01:00
Malte Poll
e113253262 bazel: migrate all integration tests (and retire CMakeLists.txt) 2023-12-08 14:27:46 +01:00
Malte Poll
a87fd7607f deps: update Kubernetes versions 2023-12-08 13:59:51 +01:00
edgelessci
90d92e5b51 deps: tidy all modules 2023-12-08 13:59:51 +01:00
renovate[bot]
765ebc9ab4 deps: update module k8s.io/kubernetes to v1.27.8 [SECURITY] 2023-12-08 13:59:51 +01:00
Daniel Weiße
f5aea84eaa
terraform-provider: sync provider docs to Terraform provider repository (#2683)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-08 12:56:51 +01:00
Malte Poll
93d505ef7f
deps: bump Go to 1.21.5 (#2689) 2023-12-08 12:11:31 +01:00
edgelessci
b92635a0f0
image: update measurements and image version (#2687)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-12-08 11:22:48 +01:00
Adrian Stobbe
37cff42bfe
ci: build Terraform binaries action (#2684)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-12-07 16:32:03 +01:00
edgelessci
ac056ae010
image: update measurements and image version (#2681)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-12-07 09:10:28 +01:00
Malte Poll
c0d8508931
ci: fix repository name of shellcheck for linux arm64 (#2670) 2023-12-06 13:34:22 +01:00
Daniel Weiße
b7425db72a
constellation-lib: add Helm wrapper (#2680)
* Add Helm wrapper to constellation-lib
* Move helm package to constellation-lib

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-06 10:01:39 +01:00
Daniel Weiße
3691defce7
constellation-lib: move kubecmd package usage (#2673)
* Reduce external dependencies of kubecmd package
* Add kubecmd wrapper to constellation-lib
* Update CLI code to use constellation-lib
* Move kubecmd package to subpackage of constellation-lib
* Initialise helm and kubecmd clients when kubeConfig is set

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-05 16:23:31 +01:00
Adrian Stobbe
c07c333d3d
terraform-provider: data skeleton for cluster resource (#2678) 2023-12-05 16:16:50 +01:00
Daniel Weiße
f5718b6655
docs: add Kubernetes version support list (#2661)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-05 15:13:25 +01:00
Moritz Sanft
781ac85711
cli: move cloudcmd/validators to cmd (#2679)
* cli: refactor `cloudcmd/validators`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make struct fields private

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* use errors.New

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* make struct fields private in usage

* fix casing

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-12-05 12:28:40 +01:00
Markus Rudy
a3de1d95d9 helm: deprioritize Cilium tc filters
By default, Cilium's tc filters are added add the highest priority,
which makes it impossible to add any tc filters of our own (because the
Cilium eBPF programs don't return to the filter chain).

Two near-future use cases that would benefit from this:

* Network testing could add counting filters to interfaces and observe
  e.g. violations of encryption policy.
* The VPN Helm chart could add a filter policy that drops packets on the
  "physical" interface before they can leak to the CSP.
2023-12-05 09:52:52 +01:00
Malte Poll
5e2cad34c9
image: update Linux to 6.1.64 (#2677)
Changelogs:

https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.63
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.64
2023-12-05 09:35:48 +01:00
Moritz Sanft
17aecaaf5f
constellation-lib: refactor init RPC to be shared (#2665)
* constellation-lib: refactor init RPC

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* constellation-lib: pass io.Writer for collecting logs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* constellation-lib: add init test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* constellation-lib: bin dialer to struct

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* constellation-lib: set service CIDR on init

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-12-04 13:40:24 +01:00
3u13r
db49093da7
ci: export constellation with absolute path (#2675) 2023-12-04 13:18:13 +01:00
Daniel Weiße
0e91650631
cli: fix helm-timeout flags for deprecated commands (#2676)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-04 10:14:16 +01:00
edgelessci
8bd17b995e
image: update locked rpms (#2674)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-12-04 09:02:59 +01:00
edgelessci
c1bc7840bf
image: update measurements and image version (#2671)
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-12-01 16:14:27 +01:00
3u13r
63cdd03d09
Make Kubernetes serviceCIDR configurable in config (#2660)
* config: pass serviceCIDR to kubeadm init

* terraform: add serviceCIDR
2023-12-01 14:39:05 +01:00
Adrian Stobbe
c2d1a7b7fb
ref: decouple helm from config (#2669) 2023-12-01 12:51:51 +01:00
edgelessci
8532d1ff02
image: update measurements and image version (#2668)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-12-01 09:36:26 +01:00
Malte Poll
432c4294c5 bazel: remove unused go_ld_test
This was an attempt to make unit tests work where we linked against libraries and ld from Fedora.
This is no longer needed.
2023-12-01 09:35:33 +01:00
Malte Poll
4ca88cd779 bazel: remove bazeldnf and pinned rpms 2023-12-01 09:35:33 +01:00
Malte Poll
5c19b2c27b bazel: add cross compiler for darwin
This allows cross compiling from aarch64-darwin to x86_64-linux.
It is required for building Go binaries on macos that target Linux and have CGO enabled.
2023-12-01 09:35:33 +01:00
Malte Poll
bd3430fcf0 image: provide runtime dependencies of cryptsetup in OS image.
This adds nix store paths to the initrd and sysroot of bootable Fedora images.
2023-12-01 09:35:33 +01:00
Malte Poll
ee3ff9ac01 bazel: use patched RPATH in bootstrapper and disk-mapper binaries 2023-12-01 09:35:33 +01:00
Malte Poll
e0739a67f9 bazel: use cryptsetup from nix 2023-12-01 09:35:33 +01:00
Malte Poll
cd6e03049a libvirt: build containerized libvirt as nix container image 2023-12-01 09:35:33 +01:00
Malte Poll
fb735419ac bazel: provide runtime dependencies of libvirt where needed
This adds nix store paths to container images that have binaries linking
against libvirt from nix.
2023-12-01 09:35:33 +01:00
Malte Poll
361b409eb2 bazel: use libvirt from nix 2023-12-01 09:35:33 +01:00
Malte Poll
c5acb18c2b bazel: use openssl for selected target platform 2023-12-01 09:35:33 +01:00
Malte Poll
9be252fccb bazel: import C libraries from nix as cc_libary
This also includes aliases to select the correct library based on the target platform.
2023-12-01 09:35:33 +01:00
Malte Poll
e895aa5495 nix: add derivations for C library dependencies
Cryptsetup and libvirt are new.
OpenSSL was moved with the rest.

The dynamic libaries cryptsetup and libvirt also ship a file called closure.tar,
that contains the transitive closure for all of their dependencies.
This tar file can be used as a container image layer or added to a bootable OS image
to provide the runtime dependencies required for dynamic linking.
Additionally, they ship a `rpath` file. This can be used together with patchelf to
fix the RPATH of binaries produced by Bazel.
2023-12-01 09:35:33 +01:00
Malte Poll
e174c4dfe1 bazel: add patchelf rule
This rule allows overwriting a binaries' rpath.
This is required to use binaries built by Bazel that link against cc_library
targets from nix (like `/nix/store/<hash>/lib/*.so`).
2023-12-01 09:35:33 +01:00
Malte Poll
45879c7360 bazel: use pure Go platform where possible
Before, we specified that the platform has glibc 2.23 under /usr/lib.
This is technically not important for statically linked Go binaries.
2023-12-01 09:35:33 +01:00
Malte Poll
cbe08597c3 bazel: define common platforms for multi-platform builds
Default platform for targeting Constellation OS images with nix and cgo:
//bazel/platforms:constellation_os

Other target platforms with nix and cgo:
//bazel/platforms:aarch64-darwin_nix
//bazel/platforms:aarch64-linux_nix
//bazel/platforms:x86_64-darwin_nix
//bazel/platforms:x86_64-linux_nix

Pure go platforms (no cgo, statically linked)
//bazel/platforms:go-pure_aarch64-darwin
//bazel/platforms:go-pure_aarch64-linux
//bazel/platforms:go-pure_x86_64-darwin
//bazel/platforms:go-pure_x86_64-linux
2023-12-01 09:35:33 +01:00
Daniel Weiße
a9cc9d8bbc
Create Kubernetes clients from bytes instead of filepath (#2663)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-12-01 09:00:44 +01:00
Moritz Sanft
4d6a7fa759
license: refactor license check to be agnostic of input (#2659)
* license: refactor license check to be agnostic of input

* license: remove unused code

* cli: only check license file in enterprise version

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: fix enterprise CLI build

* bazel: add keep directive

* Update internal/constellation/apply.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* license: check for return value

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-12-01 08:37:52 +01:00
Markus Rudy
381c546c88 rfc: fix path 2023-12-01 08:15:11 +01:00
Markus Rudy
b6fd1787f7
rfc: trusted k8s images (#2648)
* rfc: trusted k8s images 

Co-authored-by: 3u13r <lc@edgeless.systems>
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-30 16:33:44 +01:00
Daniel Weiße
581ae0f92a
cli: fix renamed flag for mini-constellation (#2662)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-30 10:12:51 +01:00
Daniel Weiße
b3c734b804
helm: re-enable timeout flag (#2658)
* Honor (hidden) timeout flag for applying helm charts
* Set only internally used structs to private

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-29 14:55:10 +01:00
katexochen
e06848c68a image: update measurements and image version 2023-11-29 08:45:52 +01:00
Adrian Stobbe
a2de1d23ec
terraform-provider: add attestation data source (#2640)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2023-11-28 17:30:11 +01:00
Moritz Sanft
03c5692fdd
ci: use given image if set (#2655)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-28 14:34:02 +01:00
Daniel Weiße
ca89a31f46
ci: only run verify with JSON output on v2.14 or newer (#2649)
* Only run verify with JSON output on v2.14 or newer
* Dont upload TCB version for AWS on v2.13
* Remove workaround for CLI not yet support apply to initialize clusters

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-28 14:31:27 +01:00
Thomas Tendyck
960118dc00 config: remove AWS SNP warning 2023-11-28 14:26:40 +01:00
Daniel Weiße
3bc25cdd8f
ci: add notify hook to Terraform module test (#2653)
* Enable notification on tf module e2e test failure
* Dont try to change fields with no value

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-28 14:14:18 +01:00
Daniel Weiße
43f47cc5c5
ci: fix service accounts introduced by merge (#2652)
* Fix service accounts introduced my merge
* Remove GCP_E2E_PROJECT placeholders

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-28 10:54:58 +01:00
Daniel Weiße
45f6eec0d0
ci: add missing shell in notify action (#2646)
* Add missing shell
* Remove old teams notify action

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-11-28 09:41:01 +01:00
Daniel Weiße
97aea98e77
ci: update GCP service accounts for CI (#2629)
* Update CI to use different GCP project for e2e tests
* Update GCP image project service accounts
* Update default GCP bucket name for image builds

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-27 13:04:41 +01:00
Adrian Stobbe
98673b0983
ci: only generate lock files where provider is used (#2636) 2023-11-27 12:16:45 +01:00
derpsteb
bff65d563b image: update measurements and image version 2023-11-27 10:57:21 +01:00
edgelessci
2fc82874b7
image: update locked rpms (#2645)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-27 09:01:16 +01:00
Moritz Sanft
34bf3ad296
terraform-provider: add image datasource (#2642)
* terraform-provider: init

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: add basic docgen

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: fix build steps

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: extend build process and docgen

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* dev-docs: document provider usage

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: upload aspect lib mirror

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: don't try to create lockfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: fix shellcheck issues

* bazel: separate paths to check

* terraform-provider: clean up old files

* terraform-provider: update provider resource

* terraform-provider: add image data source

* dev-docs: remove unnecessary init

* bazel: adhere to Terraform naming expectations

* terraform-provider: fix expected data type

* terraform-provider: generate docs

* terraform-provider: improve errors

* terraform-provider: add acceptance tests for data source

* terraform-provider: fix dependencies

* bazel: quote var reference

* terraform-provider: make region optional

* terraform-provider: bind imagefetcher to data source

* bazel: tidy

* terraform-provider: remove unused parameter

* terraform-provider: remove unused parameter

* terraform-provider: extend acceptance tests

* terraform-provider: allow tests to be ran without Bazel

* dev-docs: document testing

* terraform-provider: set binary path accordingly

* dev-docs: document docgen process for the provider

* bazel: run acceptance test in writable environment

* bazel: try to write to `$TMPDIR`

* terraform-provider: style nits

* terraform-provider: leave TODO

* bazel: tidy

* terraform-provider: regenerate docs

* terraform-provider: fix comment

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-27 09:00:08 +01:00
Markus Rudy
42f0aa8eb1 state: fix whitespace issue in generated docs 2023-11-27 08:35:54 +01:00
Moritz Sanft
9a62657b80
terraform-provider: init provider scaffolding (#2632)
* terraform-provider: init

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: add basic docgen

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: fix build steps

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: extend build process and docgen

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* dev-docs: document provider usage

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: upload aspect lib mirror

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: add docstring to fix linter

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: don't try to create lockfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: fix shellcheck issues

* bazel: separate paths to check

* bazel: explain what updating lockfiles means

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* terraform-provider: fix linter checks

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-24 15:58:21 +01:00
Otto Bittner
2b199fd9b1 docs: explain config options for AWS SNP 2023-11-24 15:49:48 +01:00
Otto Bittner
46f563c7ca ci: call TCB upload step for AWS 2023-11-24 15:49:48 +01:00
Otto Bittner
257eb5370f config: only fetch TCB values from api if wanted
If no TCB value is set to `latest`, the fetcher is now no
longer called.
2023-11-24 15:49:48 +01:00
Otto Bittner
67348792dc api: add support to upload AWS TCB values
The attestationconfig api CLI now uploads SNP TCB
versions for AWS.
2023-11-24 15:49:48 +01:00
Otto Bittner
4813fcfdb6 config: fetch latest AWS TCB values 2023-11-24 15:49:48 +01:00
Otto Bittner
350397923f api: refactor attestationconfigapi client/fetcher
There is now one SEVSNPVersions type that has a variant
property. That property is used to build the correct JSON
path. The surrounding methods handling the version objects
are also updated to receive a variant argument and work
for multiple variants. This simplifies adding AWS support.
2023-11-24 15:49:48 +01:00
Otto Bittner
5542f9c63c api: refactor attestationcfgapi cli
The cli now takes CSP and object kind as argument.
Also made upload an explicit command and the report
path/version an argument.
Previously the report was a flag. The CSP was hardcoded.
There was only one object kind (snp-report).
2023-11-24 15:49:48 +01:00
Otto Bittner
84d8bd8110 verify: query vlek ASK from KDS if not set
The user can choose to supply an intermediate
certificate through the config, like they can
for the root key. If none is supplied,
the KDS is queried for a valid ASK.
2023-11-24 15:49:48 +01:00
Otto Bittner
07eed0e319 attestation: use SNP-based attestation for AWS SNP 2023-11-24 15:49:48 +01:00
Otto Bittner
cdc91b50bc verify: move CSP-specific code to internal/verify
With the introduction of SNP-based attestation on AWS
some of the information in the report (MAAToken) is not
applicable to all attestation reports anymore.
Thus, make verify cmd CSP-agnostic and move
CSP-specific logic to internal/verify.
Also make internal/attestation/snp CSP aware.
2023-11-24 15:49:48 +01:00
Otto Bittner
59b096e279 cli: use new instance info struct in verify
This ensure that issuer and verify (as consumer)
use the same types for marshalling/unmarshalling.
2023-11-24 15:49:48 +01:00
Otto Bittner
5ce55e3449 attestation: add snp package
The package holds code shared between SNP-based
attestation implementations on AWS and Azure .
2023-11-24 15:49:48 +01:00
3u13r
635a5d2c0a
Fix Konnectivity migration (#2633)
* helm: let cilium upgrade jump minor versions

* cli: reconcile kubeadm cm to not have konnectivity
2023-11-24 12:28:37 +01:00
katexochen
949186e5d7 image: update measurements and image version 2023-11-24 12:06:03 +01:00
Thomas Tendyck
b94a971d8e docs: fix deploy preview and some links 2023-11-23 22:43:10 +01:00
Markus Rudy
d3b542d781
rfc: add numeric ids to existing RFCs (#2638)
* rfc: add numeric ids to existing RFCs
2023-11-23 17:53:38 +01:00
3u13r
0564e4ebb4
dev-docs: add on-prem terraform to vpn setup (#2619)
* vpn: add fake-on-prem infra

* dev-docs: move vpn helm
2023-11-23 16:13:37 +01:00
Moritz Sanft
c922864f30
fetcher: respect HTTP(S)_PROXY environment variable (#2635) 2023-11-23 14:42:13 +01:00
Markus Rudy
d599b80b2a license: enable Bazel-based integration testing
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-23 13:48:54 +01:00
Markus Rudy
b0702cd033 ci: execute integration tests with Bazel, where possible
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-23 13:48:54 +01:00
Markus Rudy
6cfc80454a license: dedicated module for integration test
The integration test for the license module depends on network
connectivity and should be Bazel-tagged as such. Since the unit tests do
not have a network dependency, we should not apply the tag to those. The
easiest way to do this in a Gazelle-compliant way is to move the
integration test into its own module.
2023-11-23 13:48:54 +01:00
Daniel Weiße
64a05b9dea
ci: correctly clean up resource in self-managed infra tests (#2637)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-23 13:08:39 +01:00
Moritz Sanft
310960fb4d
rfc: Terraform provider (#2613)
* rfc: Terraform provider

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix typo

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* rfc: annotate fields that force recreation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* reword "cluster applying"

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* rfc: resembles -> declares

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rfc: connect dangling sentence

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rfc: indicate sensitive state

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rfc: warn about PVs on recreation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rfc: idempotent -> nilpotent

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rfc: reword deletion

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rfc: mention resource outputs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-11-23 10:58:26 +01:00
Adrian Stobbe
ed22137edb
ci: notify with GH issue + project item on e2e failure (#2607)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-11-22 17:45:50 +01:00
Markus Rudy
284c7e99d1
docs: add Helm chart for VPN connectivity (#2577)
Co-authored-by: 3u13r <lc@edgeless.systems>
2023-11-22 15:08:11 +01:00
Moritz Sanft
968cdc1a38
cli: move cli/internal libraries (#2623)
* cli: move internal packages

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* cli: fix buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bazel: fix exclude dir

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* cli: move back libraries that will not be used by TF provider

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-22 14:52:56 +01:00
Malte Poll
d3ce6ffcc1
deps: update module github.com/hashicorp/* (#2626) 2023-11-22 09:35:00 +01:00
Adrian Stobbe
9af514d08e
fix panic in status cmd (#2625) 2023-11-22 08:31:37 +01:00
Adrian Stobbe
0c1e6e97e4
fix unsupported qemu in tests on mac (#2627) 2023-11-22 08:30:52 +01:00
Daniel Weiße
a6cf387a24
docs: update screencasts to use apply command (#2624)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-21 16:03:11 +01:00
renovate[bot]
71dc5170a7
deps: update golang Docker tag to v1.21.4 (#2587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 13:43:26 +01:00
renovate[bot]
6b2e41fcde
deps: update Terraform aws to v5.26.0 (#2579)
* deps: update Terraform aws to v5.26.0
* deps: tidy all modules

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-11-21 11:24:31 +01:00
Malte Poll
73eba88c70
Revert "deps: update rules_oci to 1.4.2 (#2616)" (#2618)
This reverts commit 52f7afe6e509dfa19cda8811a5ec613d984f19e9.
2023-11-20 16:18:15 +01:00
Daniel Weiße
807824bf79
ci: remove dash from create action (#2617)
* remove dash
* fix flags parsing

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-20 15:19:45 +01:00
edgelessci
60921fcc14
image: update locked rpms (#2614)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-20 14:19:26 +01:00
Malte Poll
52f7afe6e5
deps: update rules_oci to 1.4.2 (#2616) 2023-11-20 14:19:05 +01:00
Daniel Weiße
35abc3c354
cli: use apply command to start mini cluster (#2551)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-20 12:10:16 +01:00
Daniel Weiße
4c8ce55e5a
cli: enable constellation apply to create new clusters (#2549)
* Allow creation of Constellation clusters using `apply` command
* Add auto-completion for `--skip-phases` flag
* Deprecate create command
* Replace all doc references to create command with apply

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-20 11:17:16 +01:00
Thomas Tendyck
82b68df92a docs: add release v2.13.0 2023-11-19 18:57:31 +01:00
Thomas Tendyck
5f249eedcb docs: minor 2023-11-19 18:57:31 +01:00
Markus Rudy
69c64d6c69
docs: improve developer documentation for folks new to the codebase
* Correct example invocation of aws cli

* Add warning to Helm Intellisense recommendation

* Link code conventions in PR guidelines

* Tighten debugd README

* cmake is not used for building debugd anymore, remove references to it

* make the debug-cluster workflow the authoritative source for cdbg usage - don't replicate the same instructions in different places

* Document that Bazel eats a lot of RAM
2023-11-17 19:16:52 +01:00
edgelessci
e51513985a
image: update measurements and image version (#2612)
Co-authored-by: daniel-weisse <daniel-weisse@users.noreply.github.com>
2023-11-17 12:49:54 +01:00
Moritz Sanft
ce518486e5
dev-docs: fix instructions in release docs (#2611) 2023-11-17 10:46:45 +01:00
Daniel Weiße
5e9e3de1a1
ci: start v2.14-pre window (#2610)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-17 10:34:35 +01:00
Adrian Stobbe
a88a731576
docs: add Terraform module (#2560)
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com
2023-11-16 17:03:24 +01:00
Malte Poll
ac8aac0e34
ci: allow jobs to install tools from pinned nixpkgs (#2605) 2023-11-16 14:41:34 +01:00
3u13r
183ce7a45a image: update measurements and image version 2023-11-16 13:50:40 +01:00
Leonard Cohnen
cb88c7a5f3 kubernetes: remove unused struct 2023-11-15 19:27:33 +01:00
Leonard Cohnen
cfcc0898b2 helm: remove konnectivity from control-planes
This is the first step in our migration off of
konnectivity. Before node-to-node encryption
we used konnectivity to route some KubeAPI
to kubelet traffic over the pod network which then
would be encrypted.

Since we enabled node-to-node encryption this has no
security upsides anymore. Note that we still deploy
the konnectivity agents via helm and still have the
load balancer for konnectivity.

In the following releases we will remove both.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
79f562374a bootstrapper: remove cilium restart fix
Tests concluded that restating the Cilium agent after the
first boot is not needed anymore to regain connectivity for
pods.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
1972b635b4 cilium: don't allow remote node identities
The Cilium strict mode has a special mode which
loosens the security a slight bit. For compatability this
mode is enabled by default. But we don't need it for strict
node-to-node encryption. Therefore, we disable it.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
e8840d5fdc terraform: fix azure node cidr
Use the local variable instead of inlining the
node CIDR value.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
aae85f0c3c kubernetes: always use lb for joining
The token given out by control-planes contains the node IP
as an endpoint. Since during this stage the joining node is
not connected to the WireGuard network, we cannot
communicate node-to-node. Therefore, we need to hop over the
load balancer again to have a src IP outside of the strict
range.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
4f32eefe90 cilium: use strict cidrs from state file
For the strict modes we need to dynamically use
the CIDR used in the Terraform files. Therefore,
we write them to our statefile and use them when
installing Cilium.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
7318f605e1 cilium: also encryption control-planes
When enabling node-to-node encryption, Cilium does not
encrypt control-plane to control-plane traffic by
default since they say that they cannot gurantee that
the generated private key for a node is persisted across
reboots.

In Constellation we use stateful VMs which when rebooted
still have the cilium_wg0 interface containing the
private key.

Therefore, we can enable this type of encryption.
2023-11-15 19:27:33 +01:00
Leonard Cohnen
e9694d40b9 deps: update cilium
Bumping Cilium to also enable node-to-node encryption and
node-to-node strict mode. Since the second is not upstream
we use our fork.
2023-11-15 19:27:33 +01:00
katexochen
648eebab24 image: update measurements and image version 2023-11-15 11:10:40 +01:00
Moritz Sanft
2ccc2212c8
add missing runner value (#2602)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-15 08:49:10 +01:00
Daniel Weiße
6d6ef66a31
ci: refactor teams notification action (#2600)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-15 08:48:13 +01:00
edgelessci
02b4ba8413 deps: update dependency bazel_skylib to v1.5.0 2023-11-14 14:04:16 +01:00
edgelessci
b7ed4347d5 deps: update dependency hermetic_cc_toolchain to v2.1.3 2023-11-14 14:04:16 +01:00
renovate[bot]
f1edce0413 deps: update bazel (core) 2023-11-14 14:04:16 +01:00
Moritz Sanft
fd72952738
checkout before selecting image (#2598)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-14 10:33:59 +01:00
renovate[bot]
1ad995e637
deps: update bufbuild/buf to v1.28.0 (#2589)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-11-14 09:08:12 +01:00
renovate[bot]
afed1b2330
deps: update golangci/golangci-lint to v1.55.2 (#2593)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-11-14 09:07:05 +01:00
edgelessci
246b9ce069
image: update measurements and image version (#2594)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-13 21:10:15 +01:00
3u13r
6f195c6f2c
state: add migration (#2580) 2023-11-13 20:49:54 +01:00
3u13r
56ab3e9e04
Revert "operator: always delete terminated pending nodes (#2545)" (#2596)
This reverts commit 5267ad0f08de57e67c2713d8ec45ad2f8041ee3e.
2023-11-13 20:25:34 +01:00
Moritz Sanft
8f2f8bdbbd
terraform: allow image to be empty (#2595)
* make image optional in the high level modules

* align azure variable description

* set defaults in convenience modules

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-11-13 20:13:24 +01:00
Moritz Sanft
8e4feb7e2a
terraform: add Terraform module for Azure (#2566)
* add Azure Terraform module

* add maa-patching command to cli

* refactor release process

* factor out image fetching to own action

* add CI

* generate

* fix some unnecessary changes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use `constellation maa-patch` in ci

* insecure flag when using debug image

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* only update maa url if existing

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make node group zone optional on aws and gcp

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [remove] register updated workflow

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Revert "[remove] register updated workflow"

This reverts commit e70b9515b7eabbcbe0d41fa1296c48750cd02ace.

* create MAA

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make maa-patching only run on azure

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add comment

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* require node group zone for GCP and AWS

* remove unnecessary bazel action

* stamp version to correct file

* refer to `maa-patch` command in docs

* run Azure test in weekly e2e

* comment / naming improvements

* remove sa_account resource

* disable spellcheck ot use "URL"

* `create_maa` variable

* don't write maa url to config

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* default to nightly image

* use input ref and stream

* fix command check

* don't set region in weekly e2e call

* patch maa if url is not empty

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove `create_maa` variable

* remove binaries

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove undefined input

* replace invalid attestation URL error message

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* fix punctuation

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* skip hidden commands in clidocgen

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* enable spellcheck before code block

* move spellcheck trigger out of info block

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix workflow dependencies

* let image default to CLI version

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-11-13 18:46:20 +01:00
Daniel Weiße
e8f0c58558
ci: fix maa-patch action for self-managed create (#2578)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-13 16:29:33 +01:00
Malte Poll
f79d5e8b08
deps: update linux kernel to 6.1.62 (#2582) 2023-11-13 14:54:53 +01:00
renovate[bot]
5af6ee058c
deps: update module k8s.io/kubernetes to v1.27.5 [SECURITY] (#2548)
* deps: update module k8s.io/kubernetes to v1.27.5 [SECURITY]

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-11-13 10:43:12 +01:00
Moritz Sanft
ae8025cd16
ci: fix path in self managed create test (#2574)
* fix path

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix path in doc

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-13 08:34:54 +01:00
edgelessci
e918a7af90
image: update measurements and image version (#2571)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-11-13 06:54:09 +01:00
edgelessci
285b7bc47d
image: update locked rpms (#2575)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-12 11:20:48 +01:00
edgelessci
e29d32af7f
image: update locked rpms (#2555)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-11-10 19:50:38 +01:00
Malte Poll
e11b1a0576 ci: use rbe for unit tests 2023-11-10 18:15:59 +01:00
Malte Poll
4e07965e87 bazel: disable local repository and disk cache 2023-11-10 18:15:59 +01:00
Malte Poll
b29b970c36 deps: remove dangling symlinks from libvirt-libs 2023-11-10 18:15:59 +01:00
Malte Poll
84cd22b6ee bazel: add buildbarn toolchain (Ubuntu 22.04) 2023-11-10 18:15:59 +01:00
Malte Poll
955c16a57d deps: upgrade rules_nixpkgs 2023-11-10 18:15:59 +01:00
Malte Poll
8d5ce524d5 bazel: add bazel itself as nixpkgs dependency 2023-11-10 18:15:59 +01:00
Malte Poll
bf06a014a4 bootstrapper: ignore "journald" not in $PATH in constructor
In unit tests, NewCollector may be called on systems that do not have
"journalctl" in $PATH.
We can defer checking if the command can work by not checking cmd.Err in
the constructor.
2023-11-10 18:15:59 +01:00
Adrian Stobbe
22d82a59ed
terraform: Terraform module for GCP (#2553) 2023-11-10 13:32:18 +01:00
Adrian Stobbe
b765231175
deps: bump Go to 1.21.4 (#2569)
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-11-09 20:17:14 +01:00
Adrian Stobbe
c506991eb4
docs: fix tf links (#2570) 2023-11-09 12:51:02 +01:00
Daniel Weiße
e9eb75bb83
ci: dont run SNP version upload on v2.12.0 CLI tests (#2568)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-09 08:26:42 +01:00
Adrian Stobbe
cea6204b37
terraform: Terraform module for AWS (#2503) 2023-11-08 19:10:01 +01:00
Daniel Weiße
0bac72261d
ci: fix failure issue creation for Windows e2e test (#2565)
* Add missing bazel set-up in windows e2e-failure notify
* Enable bazel caching for e2e-upgrade test
* Remove whitespace

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-08 15:27:40 +01:00
Otto Bittner
b1b8571877 validation: use regex instead of dns lookup
Doing a DNS lookup may fail for domain names that are valid
but currently not assigned.
The old test also breaks inside the bazel sandbox.
2023-11-08 14:43:05 +01:00
Otto Bittner
8341db3c33 attestation: clear certificate cache in azure snp
The unittest was flacky as testcases with valid certs
in the getter property lead to those certs being cached
inside the trust module. Other testcases however,
may want to explicitly use invalid certs. The cache
interferes with this.

Co-authored-by: Moritz Sanft <ms@edgeless.systems>
2023-11-08 13:31:26 +01:00
katexochen
45df17d527 image: update measurements and image version 2023-11-08 11:40:07 +01:00
Daniel Weiße
32706f50f6
[Windows] cli: fix incorrect filepath separator causing upgrades to fail (#2562)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-08 10:26:02 +01:00
renovate[bot]
7eb28e4f6e
deps: update module github.com/google/go-tpm-tools to v0.4.2 (#2374)
* deps: update module github.com/google/go-tpm-tools to v0.4.2

* deps: tidy all modules

* remove go-tpm-tools replace

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-08 09:09:00 +01:00
Daniel Weiße
273a6ba853
ci: use structured logging for all parts of the malicious-join test (#2557)
* Use structured logging for all parts of the test
* Fix malicious-join image build action

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-07 09:02:19 +01:00
Malte Poll
4fe51cd5f4
image: use dissect from nix (#2558) 2023-11-06 17:50:21 +01:00
Daniel Weiße
ac4ac6a148
cli: don't validate unused ownerID field (#2556)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-06 11:55:20 +01:00
Otto Bittner
b0ee39a96d ci: publish s3proxy chart during release 2023-11-06 10:21:11 +01:00
Otto Bittner
8ebd813480 s3proxy: ship as helm chart 2023-11-06 10:21:11 +01:00
Otto Bittner
afbe17b796 renovate: add regexManager for mint img 2023-11-06 10:21:11 +01:00
Otto Bittner
a19227cac9 s3proxy: initial e2e tests and workflows 2023-11-06 10:21:11 +01:00
Malte Poll
76d7d30245
ci: do not upload terraform logs (#2554) 2023-11-04 19:14:29 +01:00
Moritz Sanft
813405f080
ci: share e2e workflow (#2550)
* re-use workflow in internal LB e2e test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add self-managed infra workfloww

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-11-03 16:27:28 +01:00
Moritz Sanft
744a605602
cli: state file validation (#2523)
* re-use `ReadFromFile` in `CreateOrRead`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [wip]: add constraints

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [wip] error formatting

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* wip

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* formatted error messages

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* state file validation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* linter fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* allow overriding the constraints

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* dont validate on read

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add pre-create constraints

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [wip]

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* finish pre-init validation test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* finish post-init validation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use state file validation in CLI

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix apply tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update internal/validation/errors.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* use transformator for tests

* tidy

* use empty check directly

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update cli/internal/state/state.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update cli/internal/state/state.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update cli/internal/state/state.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update cli/internal/state/state.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* conditional validation per CSP

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix rebase

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add default case

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* validate state-file as last input

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-11-03 15:47:03 +01:00
Adrian Stobbe
eaec73cca4
cli: fix invalid upper case name on AWS (#2546) 2023-11-03 10:09:43 +01:00
katexochen
d67f1a035f image: update measurements and image version 2023-11-03 09:04:06 +01:00
katexochen
33ff6eb5ae image: update measurements and image version 2023-11-02 13:28:49 +01:00
renovate[bot]
8e00fb9fe1
deps: update golangci/golangci-lint to v1.55.1 (#2517)
* deps: update golangci/golangci-lint to v1.55.1
* deps: tidy all modules
* golangci-lint: exclude ginko/gomega imports
   from dot-imports rule

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-11-02 11:16:17 +01:00
Daniel Weiße
5267ad0f08
operator: always delete terminated pending nodes (#2545)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-11-02 10:39:13 +01:00
renovate[bot]
17b0915a10
deps: update docker/build-push-action action to v5 (#2531)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-11-02 10:13:14 +01:00
Daniel Weiße
625dc26644
cli: unify cloudcmd create and upgrade code (#2513)
* Unify cloudcmd create and upgrade code
* Make libvirt runner code a bit more idempotent

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-31 12:46:40 +01:00
Daniel Weiße
e8cf0f59bd
ci: force delete files on self-managed destroy (#2538)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-31 12:45:10 +01:00
Moritz Sanft
9a282df846
ci: separate logs and metrics indices (#2544)
* separate logs and metrics indices

* tidy
2023-10-31 12:09:27 +01:00
Moritz Sanft
0c03076181
add missing field (#2542) 2023-10-31 10:12:49 +01:00
Moritz Sanft
9a2587cfd8
increase period for Metricbeat (#2540) 2023-10-30 15:50:27 +01:00
Moritz Sanft
8d08ace0b5
ci: mark self-managed infrastructure tests (#2537)
* mark self-managed infrastructure tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add TODO

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-10-30 14:33:58 +01:00
Daniel Weiße
5f05810ad7
cli: only create Terraform client when needed (#2536)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-30 12:43:38 +01:00
katexochen
238a3c222b image: update measurements and image version 2023-10-30 11:23:12 +01:00
3u13r
618da92c7f
image: use all of cilium's sysctl overrides (#2532) 2023-10-30 11:19:58 +01:00
Moritz Sanft
21cfb40e98
docs: align self-managed infrastructure docs with e2e worfklow (#2525) 2023-10-30 10:56:10 +01:00
edgelessci
b76bd3dfcc
image: update locked rpms (#2535)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-10-30 09:31:05 +01:00
Daniel Weiße
a0863bafe7
cli: fix apply flag issues (#2526)
* Fix flag order
* Fix missing phases in flag parsing

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-30 09:30:35 +01:00
Daniel Weiße
e4d8bda792
cli: spinner for planning Terraform migrations (#2533)
* Remove mention of "changes below" for changes that are listed above the message
* Add a spinner for Terraform Plan action

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-30 09:19:35 +01:00
Moritz Sanft
78c5d09ae7
metricbeat: don't limit memory (#2534) 2023-10-30 08:02:20 +01:00
renovate[bot]
026ed5b642
deps: update module github.com/google/uuid to v1.4.0 (#2530)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-27 16:20:37 +02:00
Daniel Weiße
af36099c70 Revert "deps: update Terraform google to v5 (#2506)"
This reverts commit 37cda7f4f29269d255aa22f1bc24c5d6803bca27.
2023-10-27 14:23:04 +02:00
Daniel Weiße
a321f839bc Revert "deps: update Terraform google-beta to v5 (#2507)"
This reverts commit cb11c8e297f26c954d5cd313f22f3eef00b20b5f.
2023-10-27 14:23:04 +02:00
renovate[bot]
b3002d21e3
deps: update dependency Pillow to v10 [SECURITY] (#2400)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-27 14:22:34 +02:00
renovate[bot]
c50840dcd8
deps: update module github.com/onsi/ginkgo/v2 to v2.13.0 (#2516)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-27 13:32:47 +02:00
renovate[bot]
bac7e8b4f9
deps: update module helm.sh/helm/v3 to v3.13.1 (#2521)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-27 13:31:54 +02:00
renovate[bot]
cd93eb6886
deps: update module google.golang.org/api to v0.148.0 (#2519)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-27 09:59:26 +02:00
Moritz Sanft
402a8834ca
ci: add e2e test for self-managed infrastructure (#2472)
* add self-managed infra e2e test

* self-managed terminatio

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix upgrade test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix indentation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use -r when copying dir

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add terraform variable parsing

* copy constellation conf

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove unnecessary line breaks

* add missing value

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add image fetching for CSP

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix quoting

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing input to internal lb test

* normalize Azure URLs.. Of course

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix expressions

* initsecret to hex

* update hexdump cmd

* add build test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add node / pod cidr outputs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* explicitly delete the state file

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing license header

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* always write all outputs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix list output

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove state-file and admin-conf on destroy

* dont use test payload

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [remove] use self managed infra in manual e2e for testing

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* init: always skip infrastructure phase

* patch maa in workflow

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* default to Constellation-created infra in e2e test

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-10-27 09:37:26 +02:00
Daniel Weiße
f4bfbe3564
docs: refer to apply command instead of init or upgrade apply (#2487)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-27 08:30:59 +02:00
renovate[bot]
fff35bdb2a
deps: update module google.golang.org/grpc to v1.59.0 (#2520)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 16:59:11 +02:00
Daniel Weiße
149fedb90f
cli: add constellation apply command to replace init and upgrade apply (#2484)
* Add apply command
* Mark init and upgrade apply as deprecated
* Use apply command in CI
* Add skippable phases for attestation config and cert SANs

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-26 15:59:13 +02:00
Daniel Weiße
a7eb3b119a
cli: retry fetching of JoinConfig during init process (#2515)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-26 15:55:12 +02:00
renovate[bot]
0030280d1b
deps: update module github.com/fsnotify/fsnotify to v1.7.0 (#2518)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 15:33:23 +02:00
Adrian Stobbe
278edfa2f9
cli: init should not call terraform (#2522) 2023-10-26 14:30:11 +02:00
Daniel Weiße
ec424b260d
cli: refactor terraform code to be update/create agnostic (#2501)
* Move upgrade specific functions out of Terraform module
* Always allow overwriting Terraform files
* Ensure constellation-terraform dir does not exist on create

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-26 10:55:50 +02:00
renovate[bot]
f9989728f7
deps: update module google.golang.org/grpc to v1.56.3 [SECURITY] (#2514)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 08:20:40 +02:00
renovate[bot]
e445dac590
deps: update docker/metadata-action action to v5 (#2512)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 08:19:55 +02:00
renovate[bot]
3a8296b2f3
deps: update Terraform docker to v3 (#2508)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 08:19:08 +02:00
renovate[bot]
0563ce7336
deps: update aws-actions/configure-aws-credentials action to v4 (#2510)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 08:18:37 +02:00
renovate[bot]
cb11c8e297
deps: update Terraform google-beta to v5 (#2507)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 08:18:07 +02:00
renovate[bot]
37cda7f4f2
deps: update Terraform google to v5 (#2506)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-26 08:17:32 +02:00
renovate[bot]
0e7462728a
deps: update docker/login-action action to v3 (#2511)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-25 17:40:25 +02:00
renovate[bot]
936f55f4b0
deps: update module go.uber.org/goleak to v1.3.0 (#2509)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-25 17:39:41 +02:00
katexochen
5eb6cc6d08 image: update measurements and image version 2023-10-25 10:54:56 +02:00
renovate[bot]
06014c58ba
deps: update Kubernetes versions (#2491)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-25 10:13:42 +02:00
renovate[bot]
4afe5940b6
deps: update registry.k8s.io/provider-aws/cloud-controller-manager Docker tag to v1.28.1 (#2492)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-25 09:01:52 +02:00
Daniel Weiße
671cf36f0a
cli: common backend for init and upgrade apply commands (#2449)
* Use common 'apply' backend for init and upgrades
* Move unit tests to new apply backend
* Only perform Terraform migrations if state exists in cwd (#2457)
* Rework skipPhases logic

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-10-24 15:39:18 +02:00
renovate[bot]
15d249092c
deps: update github.com/gophercloud/utils digest to 80377ec (#2495)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-24 15:35:59 +02:00
renovate[bot]
ecbf6dcd14
deps: update bufbuild/buf to v1.27.1 (#2497)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-24 15:34:34 +02:00
Paul Meyer
1261ccb569 Revert "ci: execute unit tests and tidy check against merge of PR branch and main (#2452)"
This reverts commit 43f7d9f7368a575164bf8454cd4d848641ca1c26.
2023-10-24 14:43:09 +02:00
Moritz Sanft
a104936bc6
validation: add generic validation framework (#2480)
* [wip] validation framework

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [wip] wip

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* working for shallow structs!!!

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix needle pointer deref

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add comment

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix nested structs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix nested struct pointers

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix slices / arrays

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix struct parsing

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* extend tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* expose API

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* extend in-package documentation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* linter fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix naming

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing license headers

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* align with review

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-10-24 11:38:05 +02:00
Etel Sverdlov
2f745a2edb Update README.md
Updated some links to go to the main website now, updated the blog link, and "Getting started with Constellation" playlist link. Replace twitter with LInkedIn link.
2023-10-24 10:20:16 +02:00
Daniel Weiße
d218f296ad
cli: increase kubecmd retry limit (#2500)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-24 08:10:43 +02:00
3u13r
a1b4db4175
remove gcp internal LB from hack folder (#2502) 2023-10-23 16:26:07 +02:00
3u13r
e053d1fa71
terraform: always output node cidr (#2481)
* terraform: always output node cidr
2023-10-23 15:06:48 +02:00
Adrian Stobbe
5d640ff4f9
ci: fix win build (#2499) 2023-10-23 14:39:45 +02:00
Moritz Sanft
19ca4e6ec9
docs: document self-managed infrastructure (#2458)
* add minimal docs for self-managed infrastructure

* Update docs/docs/getting-started/first-steps.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* default to yq

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* don't tie self-managed infrastructure to Terraform

* silence the review-dog

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/create.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* [broken] add docs for filling tfvars file

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix docs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove unnecessary linebreaks

* add missing value

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix quoting

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* document endpoint separation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-10-23 11:53:08 +02:00
renovate[bot]
5b70654489
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20231016 (#2490)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-23 10:37:37 +02:00
Daniel Weiße
d154703c9a
cli: remove unnecessary check from QEMU rollbacker (#2489)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-23 10:20:25 +02:00
edgelessci
9c89b75a53
image: update locked rpms (#2498) 2023-10-22 10:10:48 +02:00
renovate[bot]
e5ead09801
deps: update ubuntu:22.04 Docker digest to 2b7412e (#2496)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-20 18:22:34 +02:00
Malte Poll
5d4af05e79
nix: flake update (#2488) 2023-10-20 17:17:59 +02:00
renovate[bot]
0d27a2add2
deps: update Constellation containers to v2.13.0-pre.0.20231017104710-b2f3f72488db (#2444)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-20 16:55:24 +02:00
Adrian Stobbe
9c1c876830
pick random azure region (#2483) 2023-10-20 13:38:08 +02:00
Daniel Weiße
37e5cbeaf6 Update link to our blog
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-20 12:13:18 +02:00
Malte Poll
c3a0a7e156
cli: set image version in tests to stamped binary version (#2485) 2023-10-20 11:41:56 +02:00
edgelessci
5cd70ac58a
image: update measurements and image version (#2482)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-10-20 08:10:51 +02:00
Daniel Weiße
eeaba28d02
ci: remove force flag from CLI commands (#2479)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-20 08:10:26 +02:00
3u13r
6c0a3b8efa
fix joining over lb (#2478) 2023-10-19 16:28:07 +02:00
edgelessci
43ee0791c6
image: update measurements and image version (#2477)
Co-authored-by: 3u13r <3u13r@users.noreply.github.com>
2023-10-19 14:50:52 +02:00
3u13r
498b5d68f6
helm: add gcp ccm permissions for internal LBs (#2474)
* helm: add gcp ccm permissions
2023-10-19 10:57:59 +02:00
3u13r
0bfb4f7e11
align tf output vars with CLI parsing (#2475) 2023-10-19 10:03:22 +02:00
Malte Poll
ee54b71a9e
ci: build rpmdb explicitly (#2476) 2023-10-19 08:34:17 +02:00
Adrian Stobbe
5819a11d25
api: for Azure attestationconfigapi use TCB values from SNP report instead of MAA token (#2429) 2023-10-17 17:36:50 +02:00
3u13r
0c89f57ac5
Support internal load balancers (#2388)
* arch: support internal lb on Azure

* arch: support internal lb on GCP

* helm: remove lb svc from verify deployment

* arch: support internal lb on AWS

* terraform: add jump hosts for internal lb

* cli: expose internalLoadBalancer in config

* ci: add e2e-manual-internal

* add in-cluster endpoint to terraform output
2023-10-17 15:46:15 +02:00
Daniel Weiße
fe7e16e1cc
cli: create or read state file during constellation create (#2470)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-17 14:37:09 +02:00
Malte Poll
1a141c3972
image: add rpm database as build output (#2442)
For reproducibility reasons, the final OS image does not ship the rpm database in sqlite format.
For supply chain security and license compliance reasons, we want to keep the rpm database of os images as a detached build artifact.
We now ship a reproducible, human readable manifest of installed rpms in the image under "/usr/share/constellation/packagemanifest" and upload the full rpm database as a build artifact (rpmdb.tar).
2023-10-17 14:04:41 +02:00
Malte Poll
e93de82c0b
image: use systemd-dissect from the host when calculating measurements (#2473)
* image: use systemd-dissect from the host when calculating measurements

* ci: setup bazel and nix toolchains before merging os image measurements
2023-10-17 13:26:07 +02:00
renovate[bot]
ac8a464d7e
deps: update K8s constrained Azure versions (#2465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 13:15:08 +02:00
Malte Poll
bad9edb99b
image: move mkosi settings into their actual sections (#2471)
mkosi now warns about what settings are defined in what sections.
Soon, the config parsing might fail when settings are in the wrong sections.
2023-10-17 12:44:19 +02:00
renovate[bot]
abbe3853cb
deps: update cachix/install-nix-action action to v23 (#2469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 10:48:52 +02:00
renovate[bot]
4fbf94ceb8
deps: update golang:1.21.3 Docker digest to 24a0937 (#2468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 10:48:38 +02:00
renovate[bot]
63ebdd9292
deps: update docker.io/k8scloudprovider/openstack-cloud-controller-manager Docker tag to v1.26.4 (#2466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 10:47:48 +02:00
renovate[bot]
b2f3f72488
deps: update fedora:38 Docker digest to 8285246 (#2467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 10:47:10 +02:00
Moritz Sanft
a8605d7294
cli: use custom byte-slice marshalling for state file (#2460)
* custom byte slice marshalling

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* byte slice compatibility

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* other byte slice compat test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing dep

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* export byte type alias

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* regenerate exported type

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* test marshal and unmarshal together

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-10-17 10:35:54 +02:00
Malte Poll
c424ec8825
ci: fix PR label for rpm updates (#2464) 2023-10-17 09:46:37 +02:00
edgelessci
d9bd870dbd
image: update locked rpms (#2463)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-10-17 09:42:00 +02:00
Malte Poll
a9f245752c ci: update rpm lockfile once per week 2023-10-17 09:23:56 +02:00
Malte Poll
8bc1d80d86 image: install rpms from lockfile 2023-10-17 09:23:56 +02:00
Moritz Sanft
25b23689ad
cli: generate state file during constellation config generate (#2455)
* create state file during config generate

* use written file in `constellation create`

* document creation of state file

* remove accidentally added test

* check error when writing state file
2023-10-16 20:18:59 +02:00
Moritz Sanft
e5513f14e6
cli: add field docs to the state file (#2453)
* add field docs to the state file

* mark only optional fields

* tidy

* use talos encoder
2023-10-16 16:49:07 +02:00
Daniel Weiße
afb154ceb7
ci: add missing quotation marks for region flag + revert to northeurope (#2459)
* Add missing quotation marks for region flag
* Revert default Azure region to northeurope

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-16 16:20:32 +02:00
Daniel Weiße
c52086c5ff
cli: refactor flag parsing code (#2425)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-16 15:05:29 +02:00
3u13r
adfe443b28
bump golang.org/x/net to v0.17.0 (#2456) 2023-10-16 13:22:31 +02:00
Daniel Weiße
93b70e5633
cli: revert libvirt terraform provider upgrade (#2454)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-16 10:43:30 +02:00
Malte Poll
43f7d9f736
ci: execute unit tests and tidy check against merge of PR branch and main (#2452) 2023-10-16 09:58:45 +02:00
renovate[bot]
776d43d5c2
deps: update module github.com/bazelbuild/rules_go to v0.42.0 (#2443)
* deps: update module github.com/bazelbuild/rules_go to v0.42.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-10-16 09:53:26 +02:00
Malte Poll
33d53a1da9
ci: remove python from codeql (#2451) 2023-10-13 12:37:13 +02:00
Thomas Tendyck
3255ce3e72 docs: add s3proxy to features 2023-10-13 11:39:49 +02:00
Daniel Weiße
ab8a17e535
cli: remove old migration steps and id-file references (#2440)
* Remove old migration steps and id-file references
* Update codeowners file

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-13 10:21:21 +02:00
3u13r
9e1a0c06bf
Deps: bump Go to 1.21.3 (#2450)
* build: override go version to 1.21.3

* build: re-enable cachix

* ci: set $USER if not set
2023-10-12 16:11:02 +02:00
Malte Poll
e80e6076b4 ci: install nix together with Bazel 2023-10-12 14:42:24 +02:00
Malte Poll
e74dbda64e bazel: use openssl from nixpkgs 2023-10-12 14:42:24 +02:00
Malte Poll
d22f53d7cc bazel: always use nix 2023-10-12 14:42:24 +02:00
Malte Poll
d046ba01ff nix: update nixpkgs 2023-10-12 14:42:24 +02:00
Otto Bittner
1e13da3b71
docs: extend filestash example with more regions (#2445) 2023-10-12 14:34:51 +02:00
renovate[bot]
907b74a31f
deps: update module golang.org/x/tools to v0.14.0 (#2446)
* deps: update module golang.org/x/tools to v0.14.0

* ci: don't error on cleanup

---------

Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-10-12 14:07:59 +02:00
Thomas Tendyck
f696cb452b s3proxy: remove unnecessary pull secret 2023-10-11 17:57:16 +02:00
renovate[bot]
a1c84cb080
deps: update GitHub action dependencies (#2437)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:49:50 +02:00
renovate[bot]
0f5039f2e9
deps: update Terraform libvirt to v0.7.4 (#2434)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:47:51 +02:00
renovate[bot]
b1e8a06249
deps: update aquasecurity/tfsec to v1.28.4 (#2435)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:45:58 +02:00
renovate[bot]
7ea93144f9
deps: update bufbuild/buf to v1.27.0 (#2438)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:45:07 +02:00
renovate[bot]
6928ec9410
deps: update golangci/golangci-lint to v1.54.2 (#2439)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:44:23 +02:00
renovate[bot]
117c9c53f8
deps: update golang Docker tag to v1.21.3 (#2436)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:43:53 +02:00
renovate[bot]
7a1947efb3
deps: update ubuntu:22.04 Docker digest to 9b8dec3 (#2432)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:43:27 +02:00
renovate[bot]
1d516b74d6
deps: update distroless_static Docker digest to 6706c73 (#2433)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-11 13:43:02 +02:00
miampf
e6e1ac5a73
renovate: relax rules to allow updates to minor versions (#2423) 2023-10-11 09:53:52 +00:00
edgelessci
e231a24916
image: update measurements and image version (#2428)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-10-11 10:33:54 +02:00
Adrian Stobbe
b35a042abd
fix verify test (#2424) 2023-10-10 20:47:53 +02:00
Malte Poll
02c04f057f
ci: start v2.13-pre window (#2426) 2023-10-10 18:33:04 +02:00
Malte Poll
c4a3e40882 s3proxy: add new page to documentation (v2.12) 2023-10-10 18:31:02 +02:00
Malte Poll
07249b1288 docs: add note about current AWS CVM issues (v2.12) 2023-10-10 18:31:02 +02:00
malt3
34cdfdaf57 docs: add release v2.12.0 2023-10-10 18:31:02 +02:00
Otto Bittner
4ef2e289b2
s3proxy: add new page to documentation (#2417)
Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>
Co-authored-by: Thomas Tendyck <ts@edgeless.systems>
2023-10-10 15:35:23 +02:00
Thomas Tendyck
714158619a docs: add note about current AWS CVM issues 2023-10-10 12:11:52 +02:00
Malte Poll
e4ed24ee4f image: fix bootstrapper install path 2023-10-10 10:33:54 +02:00
Moritz Sanft
8749cafcbd explicitly initialize struct 2023-10-10 10:33:54 +02:00
Moritz Sanft
6f53dc90cf fix go-sev-guest default product 2023-10-10 10:33:54 +02:00
Moritz Sanft
dbad7c2f7a update go-tpm-tools / go-sev-guest 2023-10-10 10:33:54 +02:00
Otto Bittner
c603b547db
s3proxy: add allow-multipart flag (#2420)
This flag allows users to control wether multipart uploads
are blocked or allowed. At the moment s3proxy doesn't
encrypt multipart uploads, so there is a potential for
inadvertent data leakage. With this flag the default
behavior is changed to a more secure default one: block
multipart uploads. The previous behavior can be enabled
by setting allow-multipart.
2023-10-09 15:18:12 +02:00
Moritz Sanft
005e865a13
cli: use state file on init and upgrade (#2395)
* [wip] use state file in CLI

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use state file in CLI

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

take clusterConfig from IDFile for compat

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

various fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

wip

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add GCP-specific values in Helm loader test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove unnecessary pointer

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* write ClusterValues in one step

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* move stub to test file

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove mention of id-file

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* move output to `migrateTerraform`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* unconditional assignments converting from idFile

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* move require block in go modules file

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fall back to id file on upgrade

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add notice to remove Terraform state check on manual migration

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add `name` field

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

fix name tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* return early if no Terraform diff

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* return infrastructure state even if no diff exists

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add TODO to remove comment

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use state-file in miniconstellation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* cli: remove id-file (#2402)

* remove id-file from `constellation create`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add file renaming to handler

* rename id-file after upgrade

* use idFile on `constellation init`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove id-file from `constellation verify`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* linter fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove id-file from `constellation mini`

* remove id-file from `constellation recover`

* linter fixes

* remove id-file from `constellation terminate`

* fix initSecret type

* fix recover argument precedence

* fix terminate test

* generate

* add TODO to remove id-file removal

* Update cli/internal/cmd/init.go

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* fix verify arg parse logic

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add version test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove id-file from docs

* add file not found log

* use state-file in miniconstellation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove id-file from `constellation iam destroy`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove id-file from `cdbg deploy`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* use state-file in CI

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update orchestration docs

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-10-09 13:04:29 +02:00
Malte Poll
dbf40d185c
ci: free up disk space on GitHub hosted runners (#2419) 2023-10-09 11:00:22 +02:00
Adrian Stobbe
fdd47b7a00
cli: new flag for Azure JSON output of constellation verify (#2391) 2023-10-07 16:24:29 +02:00
Daniel Weiße
cc4ec80e48
cli: update Azure/GCP CSI charts (#2416)
* Update Azure CSI driver to v1.3.0
* Update GCP CSI driver to v1.3.0

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-06 14:56:49 +02:00
Daniel Weiße
8bb23c373b
ci: ensure API is only updated if image and measurements are uploaded (#2413)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-06 14:34:06 +02:00
Daniel Weiße
ce2465c3c7
ci: use West US region for Azure e2e test until problems are resolved (#2414)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-06 11:43:02 +02:00
Moritz Sanft
d0fe6c9272
update list of default idkeydigests (#2415) 2023-10-06 11:32:19 +02:00
Otto Bittner
887dcda78b s3proxy: add keyservice integration
Encrypt each object with a random DEK and attach
the encrypted DEK as object metadata.
Encrpt the DEK with a key from the keyservice.
All objects use the same KEK until a keyrotation
takes place.
2023-10-06 11:23:32 +02:00
Otto Bittner
a7ceda37ea s3proxy: add intial implementation
INSECURE!
The proxy intercepts GetObject and PutObject.
A manual deployment guide is included.
The decryption only relies on a hardcoded, static key.
Do not use with sensitive data; testing only.
* Ticket to track ranged GetObject: AB#3466.
2023-10-06 11:23:32 +02:00
katexochen
957f8ad203 image: update measurements and image version 2023-10-06 08:09:28 +02:00
Paul Meyer
b1d5d13990 github: replace discord with GitHub discussions
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-05 16:57:19 +02:00
Paul Meyer
53bfb3b71a github: use new issue forms instead of template
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-10-05 16:57:19 +02:00
Moritz Sanft
2d797874c7
ci: add msanft to list of possible e2e assignees (#2410)
* add msanft to list of possible e2e assignees

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add msanft to teams card

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-10-05 13:54:45 +02:00
3u13r
1452e64675
Refactor Terraform to have all ports in a list (#2409)
* terraform: aws refactoring

* terraform: gcp refactoring

* terraform: azure refactoring
2023-10-05 12:34:02 +02:00
Daniel Weiße
f69ae26122
csi: fix concurrent use of cryptmapper package (#2408)
* Dont error on opening already active devices

* Fix concurrency issues when working with more than one device

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-10-05 11:20:22 +02:00
3u13r
6ba43b03ee
docs: add gcp permissions needed for upgrade (#2378) 2023-10-05 10:28:39 +02:00
Moritz Sanft
13e9359b5c
remove unnecessary link (#2407) 2023-10-05 10:05:45 +02:00
edgelessci
7e899d09c4
image: update measurements and image version (#2405)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-10-04 14:24:57 +02:00
Malte Poll
6ea0b38a66 ci: add large runner as allowed label 2023-10-04 13:17:44 +02:00
Malte Poll
69cb70e970 deps: update linux kernel to 6.1.55 2023-10-04 13:17:44 +02:00
Moritz Sanft
0885646034
github: add AB ticket link to PR template (#2397)
* add Azure DevOps ticket to PR template

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make additional info not optional

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-10-04 10:26:10 +02:00
Malte Poll
b4fb8439d0
ci: use larger runners for os image pipeline (#2399) 2023-10-04 10:13:43 +02:00
Moritz Eckert
7c76592a08
docs: add observability page (#2384)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: 3u13r <lc@edgeless.systems>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-10-04 09:37:46 +02:00
renovate[bot]
e938cc5e63
deps: update module golang.org/x/vuln to v1.0.1 (#2365)
* deps: update module golang.org/x/vuln to v1.0.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-09-29 21:45:42 +02:00
Malte Poll
af532f223d
deps: update golang.org/x/tools (#2396) 2023-09-29 15:49:34 +02:00
Moritz Sanft
a5021c52d3
joinservice: cache certificates for Azure SEV-SNP attestation (#2336)
* add ASK caching in joinservice

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use cached ASK in Azure SEV-SNP attestation

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update test charts

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix typ

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make caching mechanism less provider-specific

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add `omitempty` flag

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* frontload certificate getter

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* rename frontloaded function

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* pass cached certificates to constructor

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix race condition

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix marshalling of empty certs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix validator usage

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [wip] add certcache tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add certcache tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix validator test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove unused fields in validator

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix certificate precedence

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use separate context

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* linter fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* linter fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Remove unnecessary comment

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* use background context

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Use error format directive

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* `azure` -> `Azure`

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* improve error messages

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add x509 -> PEM util function

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use crypto util functions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix certificate replacement logic

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* only require ASK from certcache

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix comment typo

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-09-29 14:29:50 +02:00
Malte Poll
68d8b29335 nix: update flake.lock 2023-09-29 14:09:58 +02:00
Malte Poll
627a4b6cbb ci: enable nix binary cache 2023-09-29 14:09:58 +02:00
Malte Poll
b66fa5aaab hack: remove pseudo-version tool
The Go implementation is now unused.
Consumers are all switched over to /tools/workspace_status.sh
2023-09-29 14:09:58 +02:00
Malte Poll
ed4d4d83fd ci: remove dependency on pseudo-version tool 2023-09-29 14:09:58 +02:00
Malte Poll
055fb32918 ci: stop using raw "go run" 2023-09-29 14:09:58 +02:00
3u13r
eebaef9ddd
init: overwrite kubeconfig address (#2393) 2023-09-29 14:01:40 +02:00
Malte Poll
85b4101dc3
deps: update go to 1.21.1 (#2389) 2023-09-28 22:29:14 +02:00
3u13r
c74a2e98df
cli: omitempty infrastructure fields (#2392) 2023-09-28 18:39:52 +02:00
Daniel Weiße
36c8cf2fd8
ci: fix whitespace in url for some tests (#2390)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-28 16:31:22 +02:00
Malte Poll
4a66899de8 docs: update attestation section with changes for measured boot 2023-09-27 17:58:19 +02:00
Malte Poll
1da5153627 ci: use nix + mkosi during os image build 2023-09-27 17:58:19 +02:00
Malte Poll
f6d9f91877 image: reimplement and adapt measurement generation in Go 2023-09-27 17:58:19 +02:00
Malte Poll
8e706d6de3 image: update README 2023-09-27 17:58:19 +02:00
Malte Poll
daa5b51904 terraform: disable secure boot for GCP 2023-09-27 17:58:19 +02:00
Malte Poll
4e2b9745bb terraform: disable secure boot for QEMU / MiniConstellation 2023-09-27 17:58:19 +02:00
Malte Poll
3543fe140e image: allow toggling secure boot in image upload 2023-09-27 17:58:19 +02:00
Malte Poll
c6ea596eb9 image: system layer 2023-09-27 17:58:19 +02:00
Malte Poll
4ef3d10be3 image: initrd layer 2023-09-27 17:58:19 +02:00
Malte Poll
d904766b9c image: base layer 2023-09-27 17:58:19 +02:00
Malte Poll
fc1045a4f7 image: remove old mkosi config 2023-09-27 17:58:19 +02:00
Malte Poll
0979a483b4 debugd: package as tar 2023-09-27 17:58:19 +02:00
Malte Poll
274dd9d5d8 upgrade-agent: package as tar 2023-09-27 17:58:19 +02:00
Malte Poll
365a07639c measurement-reader: package as tar 2023-09-27 17:58:19 +02:00
Malte Poll
200fc79e0c bootstrapper: package as tar 2023-09-27 17:58:19 +02:00
Malte Poll
9a5566de21 disk-mapper: package as tar 2023-09-27 17:58:19 +02:00
Malte Poll
825dab0e0b image: add sysroot files 2023-09-27 17:58:19 +02:00
Malte Poll
81c5cc21f8 image: add kernel rpms 2023-09-27 17:58:19 +02:00
Malte Poll
78300ee5b0 use toolchains from nixpkgs (with fallback) 2023-09-27 17:58:19 +02:00
Malte Poll
90967d5bc2 bazel: mkosi_image rule 2023-09-27 17:58:19 +02:00
Malte Poll
5323c2d870 bazel: mkosi toolchain
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-27 17:58:19 +02:00
Malte Poll
347659e2b0 bazel: add rules_nixpkgs
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-27 17:58:19 +02:00
Malte Poll
b25ae9a3be nix: init flake
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-27 17:58:19 +02:00
3u13r
ac2fca344d
cli: write MAAUrl to idfile again (#2387) 2023-09-27 17:40:17 +02:00
Moritz Sanft
f4b2d02194
ci: collect cluster metrics to OpenSearch (#2347)
* add Metricbeat deployment to debugd

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* set metricbeat debugd image version

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix k8s deployment

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use 2 separate deployments

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* only deploy via k8s in non-debug-images

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing tilde

* remove k8s metrics

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* unify flag

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add cloud metadata processor to filebeat

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* ci: fix debugd logcollection (#2355)

* add missing keyvault access role

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bump logstash image version

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* bump filebeat / metricbeat image version

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* log used image version

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use debugging image versions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* increase wait timeout for image upload

* add cloud metadata processor to filebeat

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix template locations in container

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix image version typo

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add filebeat / metricbeat users

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove user additions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update workflow step name

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* only mount config files

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* document potential rc

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix IAM permissions in workflow

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix AWS permissions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing workflow input

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* rename action

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* pin image versions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove unnecessary workflow inputs

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add refStream input

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove inputs.yml dep

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* increase system metric period

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linkchecker

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-09-27 16:17:31 +02:00
Paul Meyer
c7b728f202 rename armcomputev4 -> armcomputev5
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-27 15:06:55 +02:00
Paul Meyer
53e48f453f image: remove unused upload script
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-27 15:06:55 +02:00
renovate[bot]
9c1e6295d4 deps: update dependency cryptography to v41.0.4 [SECURITY] 2023-09-27 13:28:08 +02:00
edgelessci
f543922944
image: update measurements and image version (#2383)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-09-27 08:28:32 +02:00
renovate[bot]
44d35bb6dc
deps: update rhysd/actionlint to v1.6.26 (#2380)
* deps: update rhysd/actionlint to v1.6.26

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-09-26 15:49:19 +02:00
renovate[bot]
a6b877dc14
deps: update dependency hermetic_cc_toolchain to v2.1.2 (#2382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 15:48:20 +02:00
renovate[bot]
6445c11110
deps: update Terraform aws to v5.17.0 (#2366)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 15:04:32 +02:00
renovate[bot]
becfedcf6f
deps: update dependency rules_python to v0.25.0 (#2379)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 14:28:09 +02:00
renovate[bot]
b23792a989
deps: update dependency com_github_bazelbuild_buildtools to v6.3.3 (#2376)
* deps: update dependency com_github_bazelbuild_buildtools to v6.3.3

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-09-26 14:15:52 +02:00
renovate[bot]
fcc46d6bf2
deps: update dependency bazel_gazelle to v0.33.0 (#2375)
* deps: update dependency bazel_gazelle to v0.33.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-09-26 14:07:12 +02:00
renovate[bot]
b245fa6fdc
deps: update distroless_static Docker digest to e7e79fb (#2377)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 13:28:11 +02:00
renovate[bot]
8f03213a9f
deps: update fedora:38 Docker digest to 6fc00f8 (#2371)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 13:20:43 +02:00
renovate[bot]
5773bca3bb
deps: update golang Docker tag to v1.21.1 (#2370)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 13:19:54 +02:00
Daniel Weiße
7aba42baa5
ci: add more filters to e2e failure OpenSearch links (#2358)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-26 13:17:59 +02:00
renovate[bot]
5cfa91f3db
deps: update Terraform azurerm to v3.74.0 (#2368)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 13:17:17 +02:00
renovate[bot]
2829e59eef deps: update ubuntu:22.04 Docker digest to aabed32 2023-09-26 13:08:22 +02:00
renovate[bot]
dffdc37004
deps: update Terraform azuread to v2.43.0 (#2367)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 11:48:55 +02:00
renovate[bot]
090ad7b5b6
deps: update module go.uber.org/zap to v1.26.0 (#2363)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 11:28:12 +02:00
renovate[bot]
f828e49b37
deps: update katexochen/ghh to v0.3.1 (#2364)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 11:22:09 +02:00
3u13r
b9f1a0c17d
ci: don't pull from detached head (#2335) 2023-09-26 11:15:28 +02:00
renovate[bot]
b45c01da9e
deps: update module github.com/spf13/afero to v1.10.0 (#2362)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 11:04:57 +02:00
Paul Meyer
f5ddcf984e ci: recreate coverage report on push
This keeps the report in focus for PRs with longer discussion and
repeated pushes.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-26 10:36:32 +02:00
3u13r
36467bf084
cli: remove state on terminate (#2359) 2023-09-25 18:06:44 +02:00
Adrian Stobbe
4680882708
cli: remove TF ApplyOutput dependency in CLI (#2323) 2023-09-25 17:10:23 +02:00
Adrian Stobbe
322c4aad10
cli: write infrastructure to new state file (#2321)
Co-authored-by: 3u13r <lc@edgeless.systems>
2023-09-25 16:19:43 +02:00
3u13r
8f5a2867b4
ci: remove verify test for macos during release (#2338) 2023-09-25 13:51:08 +02:00
Daniel Weiße
fa4da88375
cli: report log collection failure to user (#2354)
* Report log collection failure to user

* Try collecting logs for more error cases

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-25 12:10:07 +02:00
3u13r
d0e3e494ba
ci: fix kubectl version retrieval (#2356) 2023-09-25 11:59:36 +02:00
Adrian Stobbe
118f789c2f
cli: fix Azure SEV-SNP latest version logic (#2343) 2023-09-25 11:53:02 +02:00
3u13r
2776e40df7
join: join over lb if available (#2348)
* join: join over lb if available
2023-09-25 10:23:35 +02:00
edgelessci
df77696620
image: update measurements and image version (#2351)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-09-25 10:18:55 +02:00
Daniel Weiße
33c9f16e82
ci: add missing notification hook for MiniConstellation test (#2352)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-22 13:25:20 +02:00
renovate[bot]
74fe8af8e6
deps: update Terraform google-beta to v4.83.0 new (#2345)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-09-22 10:37:19 +02:00
Moritz Sanft
3ed001fa8a
attestation: use go-sev-guest library (#2269)
* wip: switch to  attestation

* add extra comments

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* MAA checks

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use provided functions to parse report / cert chain

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* replace `CommitedTCB` check with `LaunchTCB` check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove debug check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove `LaunchTCB` == `CommitedTCB` check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* custom IdKeyDigests check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* basic test of report parsing from instance info

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* retrieve VCEK from AMD KDS

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove VCEK from `azureInstanceInfo`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use `go-sev-guest` TCB version type

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix validation parsing test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix error message

* fix comment

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove certificate chain from `instanceInfo`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add test for idkeydigest check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* wip: update tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [remove] debug prints

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* wip: fix tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* wip: fix tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix tests, do some clean-up

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add test case for fetching error

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* correct `hack` dependency

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix id key check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* [remove] comment out wip unit tests

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing newline

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* switch to released version of `go-sev-guest`

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add constructor test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add VMPL check

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add test assertions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* switch to pseudoversion

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use fork with windows fix

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter checks

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use data from THIM

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update embeds

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* verify against ARK in config

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* invalid ASK

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: 3u13r <lc@edgeless.systems>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: 3u13r <lc@edgeless.systems>

* nits

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove unnecessary checks

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* refactoring

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* use upstream library with pseudoversion

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* Update internal/attestation/azure/snp/validator.go

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* simplify control flow

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix return error

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix VCEK test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* revert unintentional changes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use new upstream release

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix removed AuthorKeyEn field

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix verification report printing

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
Co-authored-by: 3u13r <lc@edgeless.systems>
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-21 14:08:00 +02:00
Moritz Sanft
8f549f0622
add sleep after nop test (#2350)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-09-21 10:13:59 +02:00
Moritz Sanft
dc837eddb5
cli: temporarily increase AWS ASG creation timeout (#2340)
* increase ASG timeout

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make timeout dependent on SEV-SNP option

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-09-20 11:25:02 +02:00
katexochen
f3f4944239 image: update measurements and image version 2023-09-20 10:52:13 +02:00
3u13r
548bb2dfa6
debugd: send requests over lb (#2346) 2023-09-19 16:10:22 +02:00
Moritz Sanft
49c37b3969
mount AWS credentials file into Bazel container (#2341)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-09-19 16:09:53 +02:00
renovate[bot]
82e561f139
deps: update Terraform google to v4.83.0 (#2344) 2023-09-19 15:17:21 +02:00
Adrian Stobbe
22c2a73ae2
cli: store kubernetes version as strong type in config (#2287)
Co-authored-by: Otto Bittner <cobittner@posteo.net>
Co-authored-by: 3u13r <lc@edgeless.systems>
2023-09-19 13:50:00 +02:00
renovate[bot]
348418a4a1
deps: update Kubernetes versions (#2342)
* deps: update Kubernetes versions

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-09-18 13:17:43 +02:00
Moritz Sanft
0a28cdecb2
ci: add malicious join test (#2304)
* malicious node join test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add e2e build tag

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add namespaces to job apply

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix image and workflow

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter checks

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* build instructions in Dockerfile

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* only print important flags

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use `malicious-join` namespace

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* build with bazel

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* order imports

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* test cases

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* various fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add missing quotes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix typo

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* Update e2e/malicious-join/malicious-join.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update e2e/malicious-join/malicious-join.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* use switch case

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update image version

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter checks

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* wip

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* various fixes

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use workdir

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add required permissions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove permissions

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* remove packages: write permission at step

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* login to registry

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix typo

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix log

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* source base lib

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix sourcing order

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* export after definition

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix script header

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* dont exit after -e flag has been set

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-09-15 17:21:42 +02:00
katexochen
83cfc86df1 image: update measurements and image version 2023-09-15 08:37:08 +02:00
edgelessci
866861491a
docs: add release v2.11.0 (#2330)
Co-authored-by: 3u13r <3u13r@users.noreply.github.com>
2023-09-14 15:54:27 +02:00
3u13r
0982587a4d
chore: bump version.txt (#2334)
* chore: bump version.txt

* ci: bump upgrade version
2023-09-14 14:42:16 +02:00
3u13r
a03c686066
ci: bump install helm action (#2337) 2023-09-14 14:29:46 +02:00
3u13r
996542a075
ci: install helm when deploying log collection (#2333) 2023-09-14 12:03:13 +02:00
Moritz Sanft
95cf4bdf21
cli: perform upgrades in-place in Terraform workspace (#2317)
* perform upgrades in-place in terraform workspace

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* add iam upgrade apply test

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* update buildfiles

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix linter

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make config fetcher stubbable

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* change workspace restoring behaviour

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* allow overwriting existing Terraform files

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* allow overwrites of TF variables

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix iam upgrade apply

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* fix embed directive

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* make loader test less brittle

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* pass upgrade ID to user

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* naming nit

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* use upgradeDir

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* tidy

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-09-14 11:51:20 +02:00
katexochen
9c54ff06e0 image: update measurements and image version 2023-09-14 10:16:45 +02:00
Malte Poll
fbd75106ef
bazel: never run buildifier in remote execution (#2261) 2023-09-12 14:48:06 +02:00
Malte Poll
f399fe148b
api: rename references to moved hack/configapi (#2329)
Fixes 376bc6d39fd3bbb72d962f5ebe56158f9d493638
2023-09-11 10:57:32 +02:00
3u13r
95c4294921
deps: bump filepath-securejoin (#2328) 2023-09-11 10:27:53 +02:00
Adrian Stobbe
b3bb486e59
node-operator: fix data race in executor (#2326) 2023-09-11 09:26:20 +02:00
Adrian Stobbe
92726dad2a
doc: --skip-flag in the upgrade workflow (#2313)
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-09-09 15:26:18 +02:00
edgelessci
4813296062
image: update measurements and image version (#2320)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-09-09 15:19:24 +02:00
Daniel Weiße
2a1996dbe1
cli: check chart versions against target version in users config before upgrading (#2319)
* Check chart versions against target in users config

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Cleaner cli-config version support checking

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

* Return InvalidUpgradeError

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-08 23:09:02 +02:00
Daniel Weiße
5706e69091
Retry helm apply on any error (#2322)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-08 22:54:01 +02:00
Daniel Weiße
2cb0ce0b1b
Add troubleshooting notes for manually managing helm charts (#2327)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-08 22:27:25 +02:00
3u13r
a25c90e9bb
remove deprecated constellation create flags (#2325)
* chore: clean-up TODOs

* cli: make OpenStack error explicit

* cli: remove deprecated flags

* config: require DeployCSIDriver field
2023-09-08 21:15:02 +02:00
Adrian Stobbe
5960025da7
cli: new flag to skip phases of upgrade (#2310)
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-09-08 14:55:07 +02:00
Malte Poll
7376c6a998
ci: remove aspect workflows (#2324) 2023-09-08 14:19:14 +02:00
Daniel Weiße
94a7b9e7b2
cli: save Helm charts to disk before running upgrades (#2305)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-08 12:02:16 +02:00
3u13r
6cb506bca7
deps: bump go version (#2318) 2023-09-08 10:19:07 +02:00
Daniel Weiße
9765003298
cli: print ordered measurements list during constellation verify (#2302)
* Print measurements as ordered list during verify
* Fix missing safety check in AWS attestation validation

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-08 08:08:09 +02:00
Adrian Stobbe
0eb9ca2e18
move csp logic to cloudcmd (#2311) 2023-09-07 12:10:36 +02:00
Daniel Weiße
25ba8ecfed
rfc: Constellation state file (#2281)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-09-07 08:55:46 +02:00
Daniel Weiße
442f904ceb
ci: don't automatically create git tag in release pipeline (#2316)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-07 08:47:01 +02:00
Daniel Weiße
327315d5de
csi: let constructor take care of setting up cryptsetup (#2312)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-06 15:05:59 +02:00
Otto Bittner
d3c940a6a0
ci: use virtee project for sev-snp-measure-go (#2307)
Our port is part of the virtee org. Lets use it to keep it up-to-date.
2023-09-06 14:02:53 +02:00
edgelessci
4b48b5fdef
image: update measurements and image version (#2309)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-09-06 08:40:59 +02:00
Moritz Sanft
224178b936
use updated url (#2308)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-09-06 08:23:05 +02:00
Moritz Eckert
c7996481f2
docs: switch to native mermaid support (#2306) 2023-09-05 11:24:20 +02:00
Otto Bittner
6e5ba774d8 cli: disable nosmt via VMM temporarily.
AWS asked us to disable these options temporarily until they resolve
some internal issues that sometimes prevents these instances
from starting.
2023-09-05 08:23:18 +02:00
Otto Bittner
cb934ed087
image: move idle and nosmt to aws-only images (#2297)
We don't want these options on other CSPs. This is temporary until AWS
fixed some background issues.
We need to set the option we want to set differently on each provider
once per provider as we need to keep some of the options we set with
higher priority.
2023-09-04 14:02:10 +02:00
Malte Poll
ecfb6d9b1f
image: update to Linux 6.1.46 (#2268) 2023-09-04 11:41:25 +02:00
Otto Bittner
376bc6d39f api: move hack/configapi into internal/api
The tool has an e2e test and is part of our production pipeline.
2023-09-04 11:20:13 +02:00
Otto Bittner
97dc15b1d1 staticupload: correctly set invalidation timeout
Previously the timeout was not set in the client's constructor, thus the
zero value was used. The client did not wait for invalidation.
To prevent this in the future a warning is logged if wait is disabled.

Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2023-09-04 11:20:13 +02:00
Otto Bittner
fdaa5aab3c api: use new signature type for Azure SNP versions
* Remove signature checks from unittests. Would need to export
signature from client/fetcher (unwanted). Can't figure out a better way.
e2e test completes in ~4sec and runs automatically.
So seems like a acceptable tradeoff.
* list object is now signed, but not verified. If we start to verify the list
we will have to adapt the e2e test to restore the previous list.
Otherwise there could be conflicts between dev and release keys.
2023-09-04 11:20:13 +02:00
Otto Bittner
2b19632e09 api: refine signature types
Wrapping apiObject does not work as intended as the version field
is when fetching objects from the API. Thus we need to insert
the target path of the signature directly.
2023-09-04 11:20:13 +02:00
Otto Bittner
7ffa1344e3 Configapi: pipeline to run e2e test for CLI
Co-authored-by: Paul Meyer <pm@edgeless.systems>
2023-09-04 11:20:13 +02:00
Otto Bittner
d2071e945a hack: make bucket/region configurable
The is useful for testing the configapi cli.
2023-09-04 11:20:13 +02:00
Daniel Weiße
d35822cff8
ci: add hint about cleaning up lingering resources on failure (#2300)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-04 10:09:35 +02:00
Daniel Weiße
311da4c082
cli: correctly trim white spaces for certificates in verify (#2299)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-04 08:30:18 +02:00
renovate[bot]
dd035f2bec
deps: update Constellation containers to v2.11.0-pre.0.20230821060133-60bf770e62bc (#2292)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-09-01 17:56:36 +02:00
Daniel Weiße
f3218f4197
ci: fix incorrect signing key for sbom signature and wrong public key in release artifacts (#2296)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-01 16:40:09 +02:00
Daniel Weiße
a4d6016ae5
ci: make sure permissions to terminate cluster are always set for e2e upgrade (#2298)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-09-01 16:15:13 +02:00
Otto Bittner
75ce11af14
cli: disable smt via cpu_options (#2291)
Disabling SMT dynamically inside the image creates problems on AWS.
The problem should be fixed by disabling smt through the VMM.
By recommendation from AWS: add idle=poll.
This should improve our launch success rate while they investigate some
upstream issues.
2023-09-01 11:26:21 +02:00
edgelessci
463833433c
image: update measurements and image version (#2295)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-09-01 08:19:37 +02:00
edgelessci
eed2be0aa3
image: update measurements and image version (#2294)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-30 14:03:35 +02:00
Daniel Weiße
b25425a9f3
deps: update grpc-middleware to v2 (#2286)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-29 14:07:19 +02:00
Daniel Weiße
ce374243ef
cli: retry join-config operations (#2290)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-29 11:40:44 +02:00
Paul Meyer
11efc8d512 ci: comment Go coverage report on PR
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-28 15:44:07 +02:00
Thomas Tendyck
5272e7c86f docs: publish fixes in performance section to 2.10 2023-08-28 10:01:15 +02:00
Adrian Stobbe
7c9a78fe51
make release idempotent (#2278) 2023-08-28 09:21:25 +02:00
Moritz Sanft
a671367794
iamcreate: collect Terraform logs (#2289)
Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
2023-08-28 09:01:03 +02:00
Adrian Stobbe
19893c565e
docs: document constellation-cluster.log file (#2285) 2023-08-25 12:50:12 +02:00
edgelessci
0f4bd8296b
image: update measurements and image version (#2284)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-25 08:45:50 +02:00
Adrian Stobbe
a03325466c
cli: helm install and upgrade unification (#2244) 2023-08-24 16:40:47 +02:00
Adrian Stobbe
9e79e2e0a1
cli: cleanup terraform files when create fails (#2282) 2023-08-24 16:38:02 +02:00
Moritz Eckert
b278b76df5
docs: add vault benchmark (#2271)
* Refactor benchmark structure
* Add vault-benchmark section
* update 2.10 docs

Co-authored-by: Otto Bittner <cobittner@posteo.net>
Co-authored-by: Thomas Tendyck <tt@edgeless.systems>
2023-08-24 15:52:05 +02:00
Daniel Weiße
f33cc647ed
Revert "docs: fix sigstore doc links (#2272)" (#2280)
This reverts commit ec1bba7a8b37e82bc0a1c930a1b41840ac4b9e17.
2023-08-24 11:12:28 +02:00
Adrian Stobbe
f15c5444da
upgrade test from v2.10.1 (#2279) 2023-08-24 09:15:43 +02:00
renovate[bot]
2da3ae3f09
deps: update Azure SDK (major) (#2253)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-24 07:55:56 +02:00
Moritz Sanft
49e5a17aec
docs: document upgrade backup files (#2275)
* document backup files on upgrade

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>

* reword TF backup

* Update docs/docs/workflows/upgrade.md

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* Update docs/docs/workflows/upgrade.md

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* Update docs/docs/workflows/upgrade.md

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* Update upgrade.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

---------

Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Otto Bittner <cobittner@posteo.net>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-08-23 21:22:36 +02:00
Paul Meyer
abd5cdf362 ci: fix ccm build when no new version are found
Previous output of findvers.sh would be [""] in case no version were
found, now the output is []. Also, GitHub cannot handle empty arrays
in the matrix field, so we add an if and check if the array is empty.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-23 15:05:22 +02:00
Daniel Weiße
47fc676927
cli: parse image and k8s versions as semver (#2235)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-23 14:37:53 +02:00
renovate[bot]
6d7c7f71a4
deps: update ghcr.io/edgelesssys/cloud-provider-gcp Docker tag to v26.4.0 (#2276)
* deps: update ghcr.io/edgelesssys/cloud-provider-gcp Docker tag to v26.4.0

* deps: bump gcp ccm for 1.27 and 1.28

---------

Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-23 11:22:17 +02:00
Daniel Weiße
0a911806d1
cli: remove/refactor upgrade package (#2266)
* Move IAM migration client to cloudcmd package

* Move Terraform Cluster upgrade client to cloudcmd package

* Use hcl for creating Terraform IAM variables files

* Unify terraform upgrade code

* Rename some cloudcmd files for better clarity

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-23 10:35:42 +02:00
edgelessci
3d5d291891
image: update measurements and image version (#2274)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-23 09:38:12 +02:00
Daniel Weiße
053aa60e47
cli: remove helm management from join-config (#2251)
* Replace UpdateAttestationConfig with ApplyJoinConfig

* Dont set up join-config over Helm, it is now only managed by our CLI directly during init and upgrade

* Remove measurementSalt and attestationConfig parsing from helm, they were only needed for the JoinConfig

* Add migration step to remove join-config from Helm management

* Update attestation config trouble shooting tip

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-23 08:14:39 +02:00
Adrian Stobbe
c42e81bf23
docs: update release docs (#2226) 2023-08-22 14:30:20 +02:00
Daniel Weiße
ec1bba7a8b
docs: fix sigstore doc links (#2272)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-22 13:33:58 +02:00
Otto Bittner
b2fa9988b9
docs: add note on how we handle deprecations (#2185) 2023-08-21 16:48:10 +02:00
Daniel Weiße
afa7fd0edb
cli: refactor kubernetes package (#2232)
* Clean up CLI kubernetes package

* Rename CLI kubernetes pkg to kubecmd

* Unify kubernetes clients

* Refactor attestation config upgrade

* Update CODEOWNERS file

* Remove outdated GetMeasurementSalt

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-21 16:15:32 +02:00
Daniel Weiße
3bf316e28f
cli: add spinner to helm chart installation (#2270)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-21 15:12:23 +02:00
Moritz Sanft
54c52f17f6
ci: fix Windows e2e test (#2255)
* fix Windows e2e test

* check if caller workflow was scheduled

* inherit secrets
2023-08-21 14:36:28 +02:00
3u13r
bb654ba1ab
cli: fix incorrect actual values for constellation verify on AWS (#2265)
* cli: fix aws pcr index
2023-08-21 13:50:00 +02:00
Paul Meyer
590931f3ac bazel: fix ordering of injects
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-21 12:55:09 +02:00
Malte Poll
d6624a472d
bazel: correctly set buildbuddy api key (#2262) 2023-08-21 12:14:47 +02:00
Malte Poll
1aea766a11
bazel: use yq from sanbox in devbuild (#2264) 2023-08-21 11:08:10 +02:00
Daniel Weiße
9477999be2
cli: clean up terraform package (#2256)
* Clean up Terraform pkg

* Add note to Terraform migration functions expecting to be run on initialized workspace

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-21 10:26:53 +02:00
Moritz Sanft
60bf770e62
ci: logcollection to OpenSearch in non-debug clusters (#2080)
* refactor `debugd` file structure

* create `hack`-tool to deploy logcollection to non-debug clusters

* integrate changes into CI

* update fields

* update workflow input names

* use `working-directory`

* add opensearch creds to upgrade workflow

* make template func generic

* make templating func generic

* linebreaks

* remove magic defaults

* move `os.Exit` to main package

* make logging index configurable

* make templating generic

* remove excess brace

* update fields

* copy fields

* fix flag name

* fix linter warnings

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* remove unused workflow inputs

* remove makefiles

* fix command

* bazel: fix output paths of container

This fixes the output paths of builds within the container by mounting
directories to paths that exist on the host. We also explicitly set the
output path in a .bazelrc to the user specific path. The rc file is
mounted into the container and overrides the host rc.
Also adding automatic stop in case start is called and a containers
is already running.
Sym links like bazel-out and paths bazel outputs should generally work
with this change.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* tabs -> spaces

---------

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-21 08:01:33 +02:00
Malte Poll
7d040c26ba
ci: fine tune aspect workflows settings (#2260)
- ensure stamping is disabled for better caching
- build everything (not only test targets)
- set cli_edition flag
2023-08-18 18:16:02 +02:00
Malte Poll
75ed8c9f3e attestation: allow "go test" to work with CGO disabled 2023-08-18 16:36:13 +02:00
Malte Poll
1d5f244879 bazel: mark envtests as "requires-network"
Envtests require networking, strict sandbox only allows networking if tag is set.
See https://bazel.build/reference/be/common-definitions#common.tags for further explanation.
2023-08-18 16:36:13 +02:00
Malte Poll
1f12541a36 bazel: allow "bazel test" to work without cgo dependencies 2023-08-18 16:36:13 +02:00
Malte Poll
de863aece0 bazel: name WORKSPACE 2023-08-18 16:36:13 +02:00
Malte Poll
d3fee12947 bazel: fix use of YQ to be hermetic during "bazel run" 2023-08-18 16:36:13 +02:00
Malte Poll
6c6e2ca2f4 bazel: adopt best practices for bazelrc
Options adapted from https://docs.aspect.build/guides/bazelrc

bazel: adopt best practices for bazelrc

Options adapted from https://docs.aspect.build/guides/bazelrc
2023-08-18 16:36:13 +02:00
Malte Poll
339492f314
ci: add aspect workflows (#2258) 2023-08-18 11:31:24 +02:00
3u13r
8325f99b09
deps: support Kubernetes 1.28 (#2242) 2023-08-18 11:13:24 +02:00
3u13r
38dcb3dbab
ci: fix recover wait condition (#2257) 2023-08-18 10:43:51 +02:00
Malte Poll
5cf2a59c2c operators: use bazel to run operator envtests 2023-08-17 10:46:45 +02:00
Malte Poll
0be3d4b132 bazel: provide k8s / envtest toolchains 2023-08-17 10:46:45 +02:00
Malte Poll
3352a9e988 bazel: set integration go build tag 2023-08-17 10:46:45 +02:00
renovate[bot]
ae7888a13f
deps: update Terraform azuread to v2.41.0 (#2254)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-17 10:29:49 +02:00
edgelessci
04ece90172
image: update measurements and image version (#2247)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-08-17 08:17:28 +02:00
Adrian Stobbe
ca47d26634
cli: fix upgrade by passing placeholder values for images (#2250)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-17 07:16:09 +02:00
Thomas Tendyck
587ae6a575
deps: limit Terraform version to FOSS releases (#2241)
* deps: limit Terraform version to FOSS releases

* fix: enforce upper version constraint

---------

Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-16 23:25:53 +02:00
Paul Meyer
c6819b8d31 ci: automatically build GCP CCM container
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 16:31:04 +02:00
Daniel Weiße
c2bb884a04
cli: fix incorrect file path for master secret during upgrades when using workspace flag (#2249)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-16 15:38:40 +02:00
edgelessci
dfe7c9884b
docs: add release v2.10.0 (#2220)
* docs: add release v2.10.0

* fix link

---------

Co-authored-by: elchead <elchead@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <tt@edgeless.systems>
2023-08-16 15:07:03 +02:00
Malte Poll
a71eaebf81
docs: update screencasts to demo node groups (#2243) 2023-08-16 13:50:31 +02:00
Malte Poll
7ce7adea3d
bazel: set most options to "common" in bazelrc (#2240)
This is required, since we try to overwrite settings in the CI.
The "common" setting is less specific and can be overwritten by later
settings that have the granularity of "common" or finer (e.g. "build").
Fixes bug where disk cache wasn't disabled in GitHub runners.
2023-08-16 12:37:29 +02:00
Paul Meyer
30df225ccc hack: remove azure-snp-report-verify
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 11:41:02 +02:00
Paul Meyer
001219d26a ci: remove azure-cvm runner
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 11:41:02 +02:00
Paul Meyer
f43888bb6f ci: remove azure-snp-reporter workflow
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 11:41:02 +02:00
Paul Meyer
2fb829294b configapi: rename files
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 11:41:02 +02:00
Paul Meyer
5bfaae2304 configapi: simplify pkg structure
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 11:41:02 +02:00
Paul Meyer
f604a8dfd2 e2e: upload TCB versions in verify test
The TCP versions are extracted from the MAA token, that itself is taken
from the verify command output. The configapi is adapted to directly
work on the MAA claims JSON.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-16 11:41:02 +02:00
Adrian Stobbe
5574092bcf
ref: update code for 2.11 (#2239)
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-08-16 11:34:58 +02:00
Daniel Weiße
103817a4a5
attestation: print ordered measurement verification warnings and errors (#2237)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-16 10:45:54 +02:00
Malte Poll
78fa921746
image: use longterm release of the Linux kernel (#2228) 2023-08-16 10:42:48 +02:00
Daniel Weiße
ed0bfd9d41
cli: move helm and terraform out of kubernetes package (#2222)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-16 09:59:32 +02:00
edgelessci
f270e91724
image: update measurements and image version (#2238)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-16 09:41:01 +02:00
Paul Meyer
6352d8005d bazel: use -C flag in govulncheck ci
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-15 16:29:56 +02:00
renovate[bot]
8c564ed84f
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20230811 (#2230)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-15 16:28:54 +02:00
renovate[bot]
26c41aacd2
deps: update module golang.org/x/vuln to v1 (#2231)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-15 15:12:39 +02:00
renovate[bot]
91ec474b80
deps: update bufbuild/buf to v1.26.1 (#2233)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-15 15:02:53 +02:00
renovate[bot]
841463d11e
deps: update GitHub action dependencies (#2234)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-15 14:38:48 +02:00
Adrian Stobbe
0332a3645f
cli: update join-config manually during upgrade (#2229)
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-08-15 13:58:04 +02:00
Malte Poll
5c1bca5928
ci: set bazlrc options for "common" instead of "build" if they should always apply (#2227)
Most flags set in the bazelrc in CI are always applicable, so we set them with the common prefix.
2023-08-15 10:34:42 +02:00
3u13r
310b80c0a8
docs: update sigstore links (#2225) 2023-08-14 15:52:45 +02:00
3u13r
c597ffb1cf
upgrade: don't pass vm image (#2211) 2023-08-14 15:16:07 +02:00
Adrian Stobbe
58e9906811
only allow chart upgrades with greater version (#2224) 2023-08-14 15:08:25 +02:00
Malte Poll
b12f2867dd
ci: set bazel build event stream timeout to 600s (#2223) 2023-08-14 14:26:59 +02:00
3u13r
8c321ec1ab
cli: add role to aws instance name (#2130) 2023-08-14 13:42:20 +02:00
Daniel Weiße
ef4d789dc8
ci: fix notify trigger in e2e upgrade workflow (#2221)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-14 11:45:04 +02:00
Adrian Stobbe
1af13878a0
fix configmap backup during upgrade (#2219) 2023-08-14 09:16:46 +02:00
Adrian Stobbe
c7bbf90989
ci: add e2e-mini to daily test (#2217) 2023-08-14 08:13:29 +02:00
renovate[bot]
d82dd6693c
deps: update ubuntu:20.04 Docker digest to 33a5cc2 (#2214)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-11 15:32:39 +02:00
Adrian Stobbe
4788467bca
cli: upgrade uses same helm releases as init (#2177) 2023-08-11 15:18:59 +02:00
Daniel Weiße
2049713620
internal: move watcher package from internal to joinservice (#2212)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-11 15:17:55 +02:00
Daniel Weiße
0e73e625d1
cli: don't refer to a message below, as it was printed above (#2216)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-11 14:35:25 +02:00
renovate[bot]
1850829cd2
deps: update K8s constrained AWS versions (#2199)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-11 14:11:57 +02:00
Paul Meyer
de9e841853 e2e: use Kubernetes 1.26 in daily test
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-11 14:06:35 +02:00
renovate[bot]
d4e8d25636
deps: update golang:1.20.7 Docker digest to 37c7d85 (#2213)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-11 13:44:55 +02:00
Daniel Weiße
715cc1f9de Fix version ordering in semver error messages
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-11 12:20:21 +02:00
Daniel Weiße
dcd1c8bd1e Fix CSI chart version not being compared to CLI version
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-11 12:20:21 +02:00
3u13r
4acfcaf723
cloud: use instanceid as name in aws (#2210) 2023-08-11 12:09:29 +02:00
edgelessci
aa787a3ea6
image: update measurements and image version (#2206)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-11 11:19:57 +02:00
Daniel Weiße
589ac8c400
cli: correctly print absolute path for kubeconfig (#2207)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-11 10:40:27 +02:00
Daniel Weiße
066fff951f
ci: correctly default to false for upgrade e2e notifications (#2208)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-11 09:05:44 +02:00
renovate[bot]
c58770b8f8
deps: update K8s constrained GCP versions (#2194)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-10 19:56:59 +02:00
renovate[bot]
3528418f1b
deps: update K8s constrained Azure versions (#2200)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-10 19:20:56 +02:00
renovate[bot]
d9c4e4f6b3
deps: update Kubernetes versions (#2195)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-10 18:40:21 +02:00
Daniel Weiße
e30179a8aa Remove manual state migration steps for AWS
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-10 15:46:59 +02:00
Daniel Weiße
154d1cc3cf Make kubernetes version optional in e2e tests
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-10 15:46:59 +02:00
Daniel Weiße
0dd62fc59d
ci: allow setting region/zone for e2e tests (#2205)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-10 12:53:40 +02:00
renovate[bot]
d12b6bf443
deps: update dependency rules_python to v0.24.0 (#2197)
* deps: update dependency rules_python to v0.24.0

* deps: upgrade rules_python archive

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-08-10 12:47:39 +02:00
renovate[bot]
34228cd261
deps: update module github.com/bazelbuild/rules_go to v0.41.0 (#2198)
* deps: update module github.com/bazelbuild/rules_go to v0.41.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-08-10 11:24:20 +02:00
Malte Poll
9aa14f58eb
bazel: remove stale build rules (#2202) 2023-08-10 11:16:06 +02:00
renovate[bot]
a5d6e80dd8
deps: update fedora:38 Docker digest to 61f921e (#2196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 10:56:35 +02:00
Malte Poll
f70fc36075
deps: update bazel, rules_go and gazelle (#2203)
* deps: update dependency bazel to v6.3.2

* deps: update dependency io_bazel_rules_go to v0.41.0

* deps: update dependency bazel_gazelle to v0.32.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-08-10 10:52:15 +02:00
Malte Poll
33c962b427
renovate: group core bazel dependencies (Bazel, rules_go, gazelle) (#2204)
* migrate renovate config and adopt json5

* renovate: group core bazel dependencies (Bazel, rules_go, gazelle)
2023-08-10 10:49:28 +02:00
renovate[bot]
947ceaa670
deps: update bufbuild/buf to v1.25.1 (#2191)
* deps: update bufbuild/buf to v1.25.1
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-08-10 08:55:24 +02:00
Paul Meyer
670c20b18c e2e: cleanup test inputs
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-09 18:42:04 +02:00
Paul Meyer
e466ce2f26 e2e: detect changing idKeyDigests on azure
by setting the Azure SNP enforcement policy to equal in the weekly e2e.
The run should fail when there are unexpected ID Key digests used.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-09 16:45:42 +02:00
3u13r
c43210c90b
ci: fix recover test (#2162)
* ci: fix recover test
Previously the test failed if not all nodes were recovered by the cli.

* ci: refactor recover test
2023-08-09 16:01:43 +02:00
Daniel Weiße
89b342900f Move workspace path functions to sub-package of cmd
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-09 15:42:24 +02:00
Daniel Weiße
99c579b45a Add package design goals to CLI package documentation
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-09 15:42:24 +02:00
Daniel Weiße
946942ba68 Add package updating/creation tips to dev-docs
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-09 15:42:24 +02:00
Daniel Weiße
21c80e7bf3 Remove iamid package
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-09 15:42:24 +02:00
Daniel Weiße
23394ea2e2
cli: fix missing safety check in ShowIAM (#2165)
* Add missing safety check to ShowIAM

* someErr->assert.AnError

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-09 15:25:59 +02:00
Daniel Weiße
c9cae643e2
internal: fix unmarshalling attestation version numbers from JSON (#2187)
* Fix unmarshalling attestation version numbers from JSON

* Add unit test for UnmarshalJSON

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-09 15:11:14 +02:00
Adrian Stobbe
656cdbb4bb
remove unused CloudServiceAccountUri from init request (#2182) 2023-08-09 14:16:45 +02:00
Otto Bittner
d5e88115a0
ci: replace mastersecret flag in recover (#2186) 2023-08-09 13:00:27 +02:00
Paul Meyer
29dcb72bea e2e: remove existingConfig field
The existingConfig field is always set to true during create, as we use
the IAM create step to generate the config in all cases. Accordingly,
secret injection into config isn't needed anymore in create.
This fixes a bug where other parameters like Kubernetes version and
cluster name wouldn't be injected into the config due to existingConfig
being true.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-09 12:36:36 +02:00
Adrian Stobbe
d8db9d0add
strict input validation on attestation version numbers (#2180) 2023-08-09 11:41:04 +02:00
Adrian Stobbe
d1febd7276
fix e2e upgrade config migration (#2179) 2023-08-09 10:28:13 +02:00
edgelessci
81a13319b7
image: update measurements and image version (#2183)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-09 10:14:39 +02:00
Malte Poll
e1c6c533ed
docs: document node groups and migration from old config fields (#2175) 2023-08-09 09:46:22 +02:00
Paul Meyer
eb2f3c3021 ci: verify all pods in verify e2e
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-08 18:46:13 +02:00
Paul Meyer
5dfa0520ce attestation: print pcr value of mismatch
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-08 18:46:13 +02:00
Adrian Stobbe
70861ee8ad
cli: declare mastersecret as immutable and print attestationCfg diff in warning (#2167) 2023-08-08 13:03:23 +02:00
Paul Meyer
e97b2afc14 cli: print maa token in verify
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-08 11:50:26 +02:00
Daniel Weiße
8dbe79500f
cli: fix incorrect usage of masterSecret salt for clusterID generation (#2169)
* Fix incorrect use of masterSecret salt for clusterID generation

Signed-off-by: Daniel Weiße <dw@edgeless.systems>

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-08-07 15:24:46 +02:00
Malte Poll
bd26e6bae7
cdbg: implement workspace / "-C" flag and "--bindir" (#2170) 2023-08-07 11:40:48 +02:00
Adrian Stobbe
9dcad0ed16
fix upgrade test by only setting nodeGroup for >v2.9 (#2176) 2023-08-07 11:02:00 +02:00
renovate[bot]
cc10613252
deps: update dependency cryptography to v41.0.3 [SECURITY] (#2150)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-07 09:23:18 +02:00
Adrian Stobbe
3ea7fddb03
fix upgrade test by adding deprecated flags(#2173) 2023-08-07 08:38:14 +02:00
3u13r
ee0adfe8c7
kubernetes: document total log size (#2164) 2023-08-04 18:17:36 +02:00
3u13r
4564017b13
config: fix aws instance type validation (#2171) 2023-08-04 18:16:49 +02:00
Malte Poll
15bb9588d7
cli: update config migration to migrate v3 -> v4 (#2166) 2023-08-04 15:57:36 +02:00
Daniel Weiße
d1ace13713
cli: add --workspace flag to set base directory for Constellation workspace (#2148)
* Remove `--config` and `--master-secret` falgs

* Add `--workspace` flag

* In CLI, only work on files with paths created from `cli/internal/cmd`

* Properly print values for GCP on IAM create when not directly updating the config

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-04 13:53:51 +02:00
renovate[bot]
ec33530c38
deps: update gcr.io/kubebuilder/kube-rbac-proxy Docker tag to v0.14.1 (#2063)
* deps: update gcr.io/kubebuilder/kube-rbac-proxy Docker tag to v0.14.1
* deps: use gcr.io/kubebuilder/kube-rbac-proxy:v0.14.1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-08-04 13:49:38 +02:00
Malte Poll
7bfcb0bd5d cli: remove old config migration from v2 to v3 2023-08-04 12:36:45 +02:00
Malte Poll
82de0b83bd docs: remove deprecated flags from docs 2023-08-04 12:36:45 +02:00
Malte Poll
92b0cd5a21 ci: update actions to use nodeGroups and remove deprecated flags 2023-08-04 12:36:45 +02:00
Malte Poll
56089a4c70 cli: update init_test to use nodeGroups 2023-08-04 12:36:45 +02:00
Malte Poll
7dfac1f758 cli: use nodeGroups when setting default disk size for QEMU 2023-08-04 12:36:45 +02:00
Malte Poll
0c20ccb477 terraform: create nodeGroups in tfvars from nodeGroups in config 2023-08-04 12:36:45 +02:00
Malte Poll
d0ec7a3e54 terraform: move OpenStack flavorID into nodeGroups 2023-08-04 12:36:45 +02:00
Malte Poll
3047cb2798 create: deprecate --control-plane-nodes and --worker-nodes flags
Also print and configure node groups
2023-08-04 12:36:45 +02:00
Malte Poll
c0177c565f config: update tests 2023-08-04 12:36:45 +02:00
Malte Poll
b61deb6a03 config: update validation to work with nodeGroups 2023-08-04 12:36:45 +02:00
Malte Poll
2246c31b7b config: define lists of valid disk types 2023-08-04 12:36:45 +02:00
Malte Poll
15bb3b31fd config: add nodeGroups 2023-08-04 12:36:45 +02:00
Daniel Weiße
374f8c7dae
cli: fix missing init parameters in mini up (#2159)
* Fix missing init parameters in mini up

* Remove redundant passing of file.Handler in init functions

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-04 10:42:09 +02:00
edgelessci
75c49b6515
image: update measurements and image version (#2163)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-04 09:58:31 +02:00
Moritz Sanft
af05e17f49
ci: keep embedded measurements if stable image is used (#2109)
Co-authored-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-08-04 09:43:32 +02:00
edgelessci
d71422667e
image: update measurements and image version (#2157)
Co-authored-by: daniel-weisse <daniel-weisse@users.noreply.github.com>
2023-08-04 08:35:19 +02:00
3u13r
720c48ea45
cli: refactor terraform output parsing (#2158) 2023-08-03 16:17:23 +02:00
Paul Meyer
dccb1dfde9 ci: remove unused actions
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-03 16:09:06 +02:00
Paul Meyer
9d90ab6df7 ci: check for unused actions
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-08-03 16:09:06 +02:00
Thomas Tendyck
122c3c92f8 Update codeowners and remove old tools 2023-08-03 15:29:53 +02:00
Adrian Stobbe
70ce195a5f
cli: unify chart value setup (#2153) 2023-08-03 13:54:48 +02:00
3u13r
5119d843f1
terraform: fix uami parsing (#2155) 2023-08-03 13:22:26 +02:00
3u13r
a983b08262
deps: bump go version (#2156) 2023-08-03 12:07:27 +02:00
Daniel Weiße
86c5fb5fab
config: reorder values (#2154)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-02 16:01:10 +02:00
Adrian Stobbe
13eea1ca31
cli: install cilium in cli instead of bootstrapper (#2146)
* add wait and restartDS

* cilium working (tested on azure + gcp)

* clean helm code from bootstrapper

* fixup! clean helm code from bootstrapper

* fixup! clean helm code from bootstrapper

* fixup! clean helm code from bootstrapper

* add patchnode for gcp

* fix gcp

* patch node inside bootstrapper

* apply renaming of client

* fixup! apply renaming of client

* otto feedback
2023-08-02 15:49:40 +02:00
edgelessci
da1376cd90
image: update measurements and image version (#2151)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-08-02 10:13:56 +02:00
Daniel Weiße
321474c356
ci: remove old incompatible test option (#2149)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-08-02 08:18:55 +02:00
renovate[bot]
7e3123232e
deps: update Terraform azurerm to v3.67.0 (#2147)
Also update Azure terraform: 
ignore snp policy changes on resource

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-08-02 08:15:22 +02:00
Otto Bittner
dac690656e
api: add functions to transparently handle signatures upon API interaction (#2142) 2023-08-01 16:48:13 +02:00
Otto Bittner
002c3a9a32
ci: upgrade fromVersion for upgrade tests (#2145)
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-08-01 10:34:11 +02:00
Otto Bittner
867f7490a2
ci: clone constellation repo into separate dir (#2143) 2023-08-01 10:13:10 +02:00
Adrian Stobbe
26480016a9
azure: fix ccm config with correct uami client_id (#2144)
* fix azure ccm config with correct uami client_id

* fix tests
2023-08-01 08:40:44 +02:00
renovate[bot]
5fa50c7fcc
deps: update dependency certifi to v2023.7.22 [SECURITY] (#2139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 15:59:28 +02:00
Adrian Stobbe
26305e8f80
cli: install helm charts in cli instead of bootstrapper (#2136)
* init

* fixup! init

* gcp working?

* fixup! fixup! init

* azure cfg for microService installation

* fixup! azure cfg for microService installation

* fixup! azure cfg for microService installation

* cleanup bootstrapper code

* cleanup helminstall code

* fixup! cleanup helminstall code

* Update internal/deploy/helm/install.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* daniel feedback

* TODO add provider (also to CreateCluster) so we can ensure that provider specific output

* fixup! daniel feedback

* use debugLog in helm installer

* placeholderHelmInstaller

* rename to stub

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-07-31 10:53:05 +02:00
renovate[bot]
ef60d00a60
deps: update module github.com/docker/docker to v23.0.6+incompatible (#2070)
* deps: update module github.com/docker/docker to v23.0.6+incompatible

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-07-31 09:58:51 +02:00
Paul Meyer
372aa0fc08 verify: print formatted SNP report
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-31 08:18:50 +02:00
Paul Meyer
c8b1765e1d verify: use helper function for format writing
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-31 08:18:50 +02:00
Paul Meyer
8e7f4cd046 verify: print VCEK extension values
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-31 08:18:50 +02:00
Daniel Weiße
9bc8217fcd
cli: output CSI driver versions on status (#2128)
* Output CSI driver versions

* Improve status output

* Correctly update CSI version on upgrades

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-27 16:14:36 +02:00
Otto Bittner
583d3021fa
ci: parse ovmf binaries from metadata (#1962)
Subsequently the metadata will be uploaded to the
attestationconfigapi so the CLI can use the data to
precalculate measurements.
2023-07-27 13:29:43 +02:00
Daniel Weiße
28e29ffe61
cli: don't backup CRs that cannot be found (#2133)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-27 10:28:56 +02:00
Adrian Stobbe
a3184af7a2
cli: add iam upgrade apply (#2132)
* add new iam upgrade apply

* remove iam tf plan from upgrade apply check

* add iam migration warning to upgrade apply

* update release process

* document migration

* Apply suggestions from code review

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* add iam upgrade

* remove upgrade dir check in test

* ask only without --yes

* make iam upgrade provider specific

* test without seperate logins

* remove csi and only add conditionally

* Revert "test without seperate logins"

This reverts commit 05a12e59c9fdaa753b0dfa02c9196437743852bf.

* fix msising cred

* support iam migration for all csps

* add iam upgrade label

---------

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-07-26 17:29:03 +02:00
Otto Bittner
9985ab3c92
api: remove empty files (#2141) 2023-07-26 17:25:12 +02:00
Otto Bittner
7db058f946
cli: wait for public ip update before reading fqdn (#2135) 2023-07-26 15:23:37 +02:00
Paul Meyer
342a71fa36 bazel: fix container versioning
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-26 13:46:27 +02:00
Adrian Stobbe
7776a890d4
remove csi and only add conditionally (#2138) 2023-07-26 12:45:47 +02:00
Paul Meyer
c8bc3ea5ee ci: build bazel container
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-25 15:41:55 +02:00
Paul Meyer
0ab76a2f95 bazel: update bazel container version on //:tidy
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-25 15:41:55 +02:00
Otto Bittner
1d5a8283e0
cli: use Semver type to represent microservice versions (#2125)
Previously we used strings to pass microservice versions. This invited
bugs due to missing input validation.
2023-07-25 14:20:25 +02:00
Paul Meyer
2d3999440d bazel: use cache path to execute cli
This way it also works within the bazel container, where the symlinks
that are created won't work, as they are linking to host paths.

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-25 11:44:23 +02:00
Paul Meyer
3796122cdb bazel: check for docker config at container start
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-25 11:44:23 +02:00
Adrian Stobbe
04dc6256e6
cli: only install aws-lb and csi charts conditionally (#2131)
* init

* upgrade csi chart conditionally
2023-07-25 10:54:47 +02:00
Daniel Weiße
7152633255
bootstrapper: refactor coredns and cilium setup (#2129)
* Decouple CoreDNS installation from Cilium

* Align cilium helm installation with other charts

* Remove unused functions
---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-25 09:57:35 +02:00
Adrian Stobbe
39cea48741
aws: fix get version error (#2127)
* init

* only add awsLB to versions if installed
2023-07-24 14:25:11 +02:00
Adrian Stobbe
92abb890ef
upgrade: retry when node image update fails due to conflict error (#2123)
* retry when node image update fails due to conflict error

* improve test
2023-07-24 12:15:11 +02:00
Adrian Stobbe
a87b7894db
aws: use new LB controller to fix SecurityGroup cleanup on K8s service deletion (#2090)
* add current chart

add current helm chart

* disable service controller for aws ccm

* add new iam roles

* doc AWS internet LB + add to LB test

* pass clusterName to helm for AWS LB

* fix update-aws-lb chart to also include .helmignore

* move chart outside services

* working state

* add subnet tags for AWS subnet discovery

* fix .helmignore load rule with file in subdirectory

* upgrade iam profile

* revert new loader impl since cilium is not correctly loaded

* install chart if not already present during `upgrade apply`

* cleanup PR + fix build + add todos

cleanup PR + add todos

* shared helm pkg for cli install and bootstrapper

* add link to eks docs

* refactor iamMigrationCmd

* delete unused helm.symwallk

* move iammigrate to upgrade pkg

* fixup! delete unused helm.symwallk

* add to upgradecheck

* remove nodeSelector from go code (Otto)

* update iam docs and sort permission + remove duplicate roles

* fix bug in `upgrade check`

* better upgrade check output when svc version upgrade not possible

* pr feedback

* remove force flag in upgrade_test

* use upgrader.GetUpgradeID instead of extra type

* remove todos + fix check

* update doc lb (leo)

* remove bootstrapper helm package

* Update cli/internal/cmd/upgradecheck.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* final nits

* add docs for e2e upgrade test setup

* Apply suggestions from code review

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update cli/internal/helm/loader.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update cli/internal/cmd/tfmigrationclient.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* fix daniel review

* link to the iam permissions instead of manually updating them (agreed with leo)

* disable iam upgrade in upgrade apply

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Malte Poll
2023-07-24 10:30:53 +02:00
Malte Poll
8da6a23aa5
bootstrapper: add fallback endpoint and custom endpoint to SAN field (#2108)
terraform: collect apiserver cert SANs and support custom endpoint

constants: add new constants for cluster configuration and custom endpoint

cloud: support apiserver cert sans and prepare for endpoint migration on AWS

config: add customEndpoint field

bootstrapper: use per-CSP apiserver cert SANs

cli: route customEndpoint to terraform and add migration for apiserver cert SANs

bootstrapper: change interface of GetLoadBalancerEndpoint to return host and port separately
2023-07-21 16:43:51 +02:00
edgelessci
3324a4eba2
image: update measurements and image version (#2124)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-07-21 16:20:41 +02:00
Otto Bittner
cf822f7eee
cli: unify terraform variable creation (#2119)
Before we defined the variables twice.
Once for upgrades, once for create.
Also move default node group names into a constant
2023-07-21 10:04:29 +02:00
3u13r
f9391ed903
cli: print supported k8s versions on error (#2121) 2023-07-20 16:09:23 +02:00
Daniel Weiße
845253373d Add check to cilium vals loading
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
cf0ac148f3 Move control-plane tolerations var
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
e0ad836fdc Fix README
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
f61b05ad0b Ignore updates to CSI containers in renovate
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
9d8e2043a2 Add upgrade path for new/not-installed charts
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
ea5c83587c Move CSI charts to separate chart and cleanup loader code
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Malte Poll
cb22a25144 bazel: add yq to PATH in go generate 2023-07-20 15:47:12 +02:00
Daniel Weiße
aa00c43156 Add missing validating webhook configuration
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
8619a90149 Deploy CSI snapshotter on init
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:47:12 +02:00
Daniel Weiße
2c8c86a0cb
ci: remove Azure portal internal links from docs (#2122)
* Remove Azure internal links from docs

* Ignore Azure internal link in dev-docs

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-20 15:04:34 +02:00
Otto Bittner
c58d03a7b8
ci: fix ahead-check for working branch (#2120)
Also list remote branches during on-release
2023-07-19 17:48:29 +02:00
renovate[bot]
ac575c9a2c
deps: update quay.io/medik8s/node-maintenance-operator Docker tag to v0.15.0 (#2064)
* deps: update quay.io/medik8s/node-maintenance-operator Docker tag to v0.15.0

* upgrade vendored nmo api folder

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-07-19 15:37:17 +02:00
Malte Poll
6098ff3612
image: synchronize time via ntp (#2118) 2023-07-19 14:11:24 +02:00
Otto Bittner
c2849f4bbe
cli: ignore name changes on lb public ip resource (#2117)
Changing the name forces a recreate, which would break existing clusters.
The name change seems to be "only" about having clearer names.
2023-07-19 10:15:23 +02:00
edgelessci
2660c1aa87
image: update measurements and image version (#2116)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-07-19 08:35:56 +02:00
Daniel Weiße
6a40c73ff7
disk-mapper: set LUKS2 token to allow reusing unintialized state disks (#2083)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-18 16:20:03 +02:00
renovate[bot]
dc373971b2
deps: update dependency cryptography to v41.0.2 [SECURITY] (#2106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-18 15:33:23 +02:00
Daniel Weiße
d03f8c7d78
image: use AWS linux kernel for AWS images to fix deadlock (#2115)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-18 15:08:34 +02:00
Malte Poll
bae9dc9a36
image: always copy amazon ena driver into initrd (#2112) 2023-07-18 11:23:30 +02:00
Malte Poll
f597c12bca
cli: set Azure ConfidentialVM option in terraform vars when migrating (#2113) 2023-07-18 10:30:55 +02:00
Adrian Stobbe
320fd4b726
doc: add iam:DeletePolicyVersion (#2111)
* document iam:DeletePolicyVersion

* add in all doc versions
2023-07-18 10:24:52 +02:00
Moritz Sanft
9bc143ea7f
remove unused file.Handler (#2114) 2023-07-18 10:17:01 +02:00
Moritz Sanft
5f71934f56
cli: write Terraform migration output directly to constellation-id.json (#2107)
* backup `constellation-id.json` before upgrade

* remove superfluous `file.Handler` arguments

* merge `constellation-id.json` on upgrade

* fix typo
2023-07-18 09:33:42 +02:00
Malte Poll
5cbdb3a519
terraform: allows cluster name length of 10 characters on AWS (#2110) 2023-07-17 17:45:41 +02:00
Daniel Weiße
ac1128d07f
cryptsetup: unify code (#2043)
* Add common backend for interacting with cryptsetup

* Use common cryptsetup backend in bootstrapper

* Use common cryptsetup backend in disk-mapper

* Use common cryptsetup backend in csi lib

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-17 13:55:31 +02:00
Daniel Weiße
f52c6752e2
ci: update failure tasks (#2087)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-17 13:46:20 +02:00
Daniel Weiße
484b6c5c24
ci: combine node count inputs into one (#2084)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-17 13:45:53 +02:00
Otto Bittner
4f1ed669d4
ci: increase autoscaling timeout to 25m (#2103)
During testing on AWS SNP we can sometimes observe the scaling
take longer than 15 mins due to slow setup times of SNP machines.
Eventually the scaling works as expected.
2023-07-17 10:30:14 +02:00
Otto Bittner
08e790b8fd
docs: mention need to delete variants (#2096) 2023-07-17 10:29:59 +02:00
Otto Bittner
c1c48f19bf chore: bump e2e-upgrade fromVersion 2023-07-17 10:29:43 +02:00
Otto Bittner
65cdaf0a23 chore: bump version.txt 2023-07-17 10:29:43 +02:00
edgelessci
a300b453f3
docs: add release v2.9.0 (#2102) 2023-07-14 16:24:05 +02:00
Moritz Sanft
43076e96a6
ci: fix resource selection for serial log downloading (#2101)
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-07-13 16:28:33 +02:00
Otto Bittner
6ed8fce6b0
ci: separate PCR0 value for aws-sev-snp variant (#2100)
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-07-13 11:37:47 +02:00
Malte Poll
e4a6d4b4fa
ci: replicate Azure images to Southeast Asia (#2099) 2023-07-13 11:26:03 +02:00
Malte Poll
e536ff6df1
operators: correctly update launch template default version on AWS image upgrade (#2097)
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-07-12 16:50:36 +02:00
Otto Bittner
ff4b5db74c
config: make deployCSIDriver backwards compatible (#2088)
We added the field in 2.9 but can only require it in 2.10.
2023-07-12 15:08:37 +02:00
Malte Poll
26f4a13934
cli: allow helm upgrades with old k8s patch version (#2095) 2023-07-12 12:42:51 +02:00
Malte Poll
37af5f5f50
cli: allow upgrade to succeed if desired attestation config == actual config (#2094) 2023-07-12 11:53:00 +02:00
Otto Bittner
ef404b5839
ci: use us-east-2 for e2e tests (#2091)
We have much higher quotas there and thus don't need to wait for
the increase in eu-west-1.
2023-07-12 10:51:52 +02:00
Paul Meyer
01f518f0a4
deps: update to Go v1.20.6 (#2093)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-12 09:51:40 +02:00
renovate[bot]
c1c4e72c61
deps: update golang Docker tag to v1.20.6 (#2092)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-12 08:46:51 +02:00
Otto Bittner
f97edd512d
ci: use 2.8 as fromVersion in release upgrade test (#2086)
The current value (2.7.1) is outdated since the release of 2.8.
2023-07-11 09:56:43 +02:00
Otto Bittner
cfa3bb6276
ci: do not build additional streams (#2085)
Large amounts of uploaded data seem to break the GH Actions cache.
2023-07-10 17:46:08 +02:00
Malte Poll
738b22caba
cli: fix broken "constellation mini up" due to incompatible terraform json (#2081)
* deps: downgrade terraform-json to v0.15.0

terraform-exec requires a matching version of terraform json.
Since the latest released version of terraform-exec still uses terraform-json v0.15.0,
we need to stay on that version.

* cli: add "--skip-helm-wait" flag for "constellation init" to "constellation mini up"
2023-07-10 15:16:45 +02:00
Otto Bittner
ef526562df
cli: remove old migrations (#2079)
The migrations are not required for upgrading from 2.8.
2023-07-10 14:03:45 +02:00
Malte Poll
5f5a752b54
rfc: canonical endpoint / custom dns (#1985) 2023-07-10 11:15:08 +02:00
Moritz Sanft
184530a80d
ci: update aws asg resource selector (#1991)
* update resource selector

* tidy

* fix shellcheck

* bazel tidy
2023-07-10 11:13:37 +02:00
renovate[bot]
d3ad46f727
deps: update module github.com/bazelbuild/rules_go to v0.40.1 (#2072)
* deps: update module github.com/bazelbuild/rules_go to v0.40.1
* deps: tidy all modules
* deps: updated bazel rules toolchain

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-07-10 10:58:51 +02:00
3u13r
52f4410334
deps: bump go-secure-stdlib/awsutil (#2076)
* deps: bump  go-secure-stdlib/awsutil

* deps: tidy after upgrade

---------

Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-07-10 10:52:20 +02:00
Adrian Stobbe
304fbf04e6
ci: fix notify e2e failure (#2078) 2023-07-10 10:44:30 +02:00
Malte Poll
c6230ff8ca
ci: add constellation-windows-amd64.exe to release artifacts uploaded to GitHub (#2075) 2023-07-10 10:21:48 +02:00
Thomas Tendyck
2c1da48437 docs: publish 2023-07-10 09:08:15 +02:00
Thomas Tendyck
0aaf58b710 docs: misc fixes 2023-07-10 09:08:15 +02:00
Malte Poll
1ff40533f1
cli: add "--skip-helm-wait" flag (#2061)
* cli: add "--skip-helm-wait" flag

This flag can be used to disable the atomic and wait flags during helm install.
This is useful when debugging a failing constellation init, since the user gains access to
the cluster even when one of the deployments is never in a ready state.
2023-07-07 17:09:45 +02:00
Adrian Stobbe
7e83991154
feat: status shows attestation config (#2056)
* init

* update doc

* fix tests

* unmarshal typed attestation config for consistent yaml formatting

* fix comments

* marshal numerical attestation values in join-config

* GetAttestationConfig marshals numerical value
2023-07-07 17:02:01 +02:00
Adrian Stobbe
fafafb48d7 pin dependency for aws-snp-launchmeasurement 2023-07-07 16:44:31 +02:00
Adrian Stobbe
344343e40b fix GHSA-hqxw-f8mx-cpmw 2023-07-07 16:44:31 +02:00
renovate[bot]
1421127d0a
deps: update dependency kubernetes-sigs/cri-tools to v1.27.0 (#2062)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-07 16:25:06 +02:00
Thomas Tendyck
492c6a7dae docs: suggest changes for first-steps-local 2023-07-07 15:35:21 +02:00
Adrian Stobbe
94b087197b
docs: how to set up MiniConstellation on Azure (#1999)
* init

* update doc

* move quick-setup to devdocs
2023-07-07 15:14:13 +02:00
Daniel Weiße
50796cf279
deps: ignore updates to CSI containers in renovate (#2068)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-07 15:05:43 +02:00
renovate[bot]
ab4b948421
deps: update module google.golang.org/grpc to v1.56.2 (#2057)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-07 14:26:41 +02:00
renovate[bot]
050db3a5d8
deps: update github.com/thomasten/go-tpm digest to f43f8e2 (#2048)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2023-07-07 13:17:58 +02:00
Malte Poll
6c5ad09a93
ci: build all streams on release (#2058) 2023-07-07 12:09:15 +02:00
Adrian Stobbe
2436b8da34
fix wrong name (#2055) 2023-07-07 11:53:39 +02:00
renovate[bot]
aa5105809c
deps: update module google.golang.org/api to v0.130.0 (#2059)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-07 11:27:25 +02:00
renovate[bot]
3a6dc4971a
deps: update K8s dependencies to v0.27.3 (#2051)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-07-07 11:26:14 +02:00
renovate[bot]
c199c6825b
deps: update dependency rules_python to v0.23.1 (#2047)
* deps: update dependency rules_python to v0.23.1

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-07-07 10:54:49 +02:00
renovate[bot]
859dfc309f
deps: update module github.com/siderolabs/talos/pkg/machinery to v1.4.6 (#2053)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-07 08:41:04 +02:00
Moritz Sanft
bd64e6950b
mount host's docker config into builder container (#2044) 2023-07-07 08:25:43 +02:00
edgelessci
b71d5cdc17
image: update measurements and image version (#2054)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-07-07 08:13:54 +02:00
renovate[bot]
67e3a8240d
deps: update Google SDK (#2050)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-07 08:11:47 +02:00
renovate[bot]
4c00339700
deps: update etcd dependencies to v3.5.9 (#2049)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-07 08:09:24 +02:00
renovate[bot]
ed2943c5c8
deps: update module github.com/onsi/ginkgo/v2 to v2.11.0 (#2045)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 18:23:52 +02:00
renovate[bot]
73d7e1ae5c
deps: update module github.com/go-git/go-git/v5 to v5.7.0 (#2040)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 18:23:09 +02:00
renovate[bot]
81b88aa4b2
deps: update module github.com/hashicorp/go-kms-wrapping/v2 to v2.0.10 (#2046)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 17:42:46 +02:00
renovate[bot]
e9f220092f
deps: update module github.com/googleapis/gax-go/v2 to v2.12.0 (#2041)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 17:30:08 +02:00
renovate[bot]
ff729bfc85
deps: update module github.com/hashicorp/terraform-json to v0.17.1 (#2037)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 16:51:48 +02:00
renovate[bot]
95e9b771f1
deps: update module github.com/gophercloud/gophercloud to v1.5.0 (#2036)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 16:44:32 +02:00
renovate[bot]
49cff0aabb
deps: update module github.com/sigstore/rekor to v1.2.2 (#2033)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 15:41:14 +02:00
renovate[bot]
8c03e7e311
deps: update module libvirt.org/go/libvirt to v1.9004.0 (#2042)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 15:24:07 +02:00
Adrian Stobbe
4434abbde2
more debug output for e2e notify (#2035) 2023-07-06 15:17:58 +02:00
renovate[bot]
0c53b535ec
deps: update module helm.sh/helm/v3 to v3.12.1 (#2039)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 15:13:01 +02:00
renovate[bot]
be23526023
deps: update module github.com/sigstore/sigstore to v1.7.1 (#2034)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 13:21:29 +02:00
renovate[bot]
c8b1e6fef3
deps: update module golang.org/x/crypto to v0.11.0 (#2014)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 13:20:20 +02:00
renovate[bot]
f364bd6b9d
deps: update Terraform google-beta to v4.72.0 (#2027)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 11:53:40 +02:00
renovate[bot]
3f1faead94
deps: update Terraform google to v4.72.0 (#2026)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 11:53:15 +02:00
renovate[bot]
ff74afa00d
deps: update Terraform azurerm to v3.63.0 (#2025)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 11:52:44 +02:00
renovate[bot]
6f389be103
deps: update module golang.org/x/tools to v0.10.0 (#2017)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-06 11:50:33 +02:00
renovate[bot]
ee8ab6d2e0
deps: update Kubernetes versions (#2023)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-07-06 11:20:38 +02:00
renovate[bot]
8b11678571
deps: update module k8s.io/kubernetes to v1.27.3 [SECURITY] (#2031)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-07-06 10:22:30 +02:00
renovate[bot]
bf09313dcf
deps: update Terraform aws to v5.6.2 (#2024)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-07-06 10:21:35 +02:00
Thomas Tendyck
274fed0990 cli: fix/improve some user-facing strings 2023-07-06 09:05:17 +02:00
Moritz Sanft
c7457bd942
bazel: fill microservice version on devbuild target (#1994)
* wip: fill microservice version on devbuild

* fill microservice versin on `devbuild`
2023-07-06 08:46:06 +02:00
renovate[bot]
e6dbb13c6c
deps: update Terraform openstack to v1.52.1 (#2028)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-05 16:52:58 +02:00
renovate[bot]
874c9b3ad9
deps: update module golang.org/x/sys to v0.10.0 (#2016)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-05 15:57:39 +02:00
renovate[bot]
0b892f23e6
deps: update golang:1.20.5 Docker digest to 7f2cf49 (#2022)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-05 15:45:36 +02:00
Adrian Stobbe
3eecb5d7b2
feat: get notified in Teams on E2E test failure ticket (#2021)
* init

* update

* can only include selected entity in request
2023-07-05 15:37:38 +02:00
renovate[bot]
38b7be4b1f
deps: update module github.com/katexochen/sh/v3 to v3.7.0 (#2013)
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-07-05 15:23:24 +02:00
renovate[bot]
5943c13006
deps: update module golang.org/x/mod to v0.12.0 (#2015)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-05 14:47:24 +02:00
Malte Poll
46d69abe10
bazel: rewrite pseudo-version stamping in bash (#2020)
* bazel: simplify workspace_status command to only depend on bash and git
* bazel: remove pseudo-version freshness code
2023-07-05 14:42:18 +02:00
Paul Meyer
149820fdce
diskmapper: fix zap.Error without err (#2012)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-05 10:07:05 +02:00
edgelessci
37288deacf
image: update measurements and image version (#2019)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-07-05 08:32:25 +02:00
renovate[bot]
53edee098a
deps: update module golang.org/x/vuln to v0.2.0 (#2018)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-05 08:30:18 +02:00
Malte Poll
4283601433
operators: infrastructure autodiscovery (#1958)
* helm: configure GCP cloud controller manager to search in all zones of a region

See also: d716fdd452/providers/gce/gce.go (L376-L380)

* operators: add nodeGroupName to ScalingGroup CRD

NodeGroupName is the human friendly name of the node group that will be exposed to customers via the Constellation config in the future.

* operators: support simple executor / scheduler to reconcile on non-k8s resources

* operators: add new return type for ListScalingGroups to support arbitrary node groups

* operators: ListScalingGroups should return additionally created node groups on AWS

* operators: ListScalingGroups should return additionally created node groups on Azure

* operators: ListScalingGroups should return additionally created node groups on GCP

* operators: ListScalingGroups should return additionally created node groups on unsupported CSPs

* operators: implement external scaling group reconciler

This controller scans the cloud provider infrastructure and changes k8s resources accordingly.
It creates ScaleSet resources when new node groups are created and deletes them if the node groups are removed.

* operators: no longer create scale sets when the operator starts

In the future, scale sets are created dynamically.

* operators: watch for node join/leave events using a controller

* operators: deploy new controllers

* docs: update auto scaling documentation with support for node groups
2023-07-05 07:27:34 +02:00
renovate[bot]
9de8660bd7
deps: update module github.com/stretchr/testify to v1.8.4 (#2008)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 17:23:09 +02:00
Malte Poll
06909f8aca
docs: explain the role of PCR[10] and why it is not reproducible (#2011) 2023-07-04 16:41:01 +02:00
Malte Poll
8ba0179137
bootstrapper: use atomics in nodelock (#2001) 2023-07-04 16:26:37 +02:00
renovate[bot]
f8117b7223
deps: update ubuntu:22.04 Docker digest to b060fff (#2006)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 16:04:28 +02:00
renovate[bot]
1dc204f5f1
deps: update katexochen/ghh to v0.3.0 (#2010)
Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-07-04 16:03:35 +02:00
renovate[bot]
c388ad6806
deps: update bufbuild/buf to v1.23.1 (#2009)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 15:15:59 +02:00
renovate[bot]
d66793df56
deps: update golangci/golangci-lint to v1.53.3 (#2007)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 15:03:35 +02:00
renovate[bot]
1196ef90ce
deps: update ubuntu:20.04 Docker digest to c9820a4 (#2005)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 14:56:01 +02:00
renovate[bot]
e698f4d3e0
deps: update golang.org/x/exp digest to 97b1e66 (#2004)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 14:55:35 +02:00
renovate[bot]
c58b97de76
deps: update fedora:38 Docker digest to a134743 (#2003)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 14:35:40 +02:00
renovate[bot]
ba410186f6
deps: update ghcr.io/edgelesssys/gcp-guest-agent Docker tag to v20230628 (#2002)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 14:17:05 +02:00
Adrian Stobbe
e72ec60d13
config: iam create aws check zone contains availability zone (#1913)
* init

* make zone flag mandatory again

* add info about zone update + refactor

* add comment in docs about zone update

* Update cli/internal/cmd/iamcreate_test.go

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* thomas feedback

* add format check to config validation

* remove TODO

* Update docs/docs/workflows/config.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* thomas nit

---------

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-07-04 13:55:52 +02:00
Paul Meyer
25a038dfad versions: update gcp-guest-agent version format
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 13:23:33 +02:00
Paul Meyer
7968d165c6 ci: use strict semver for gcp guest agent image
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-04 13:23:33 +02:00
Adrian Stobbe
c39df2f7da
terraform: openstack node groups (#1966)
* openstack

* rename to base_name

* fix openstack boot vtpm

* add docs for accessing bootstrapper logs

* rename to initial count
2023-07-03 16:33:00 +02:00
Malte Poll
d43242a55f
deps: upgrade AWS CSI driver to v1.1.1 (#1998) 2023-07-03 16:26:42 +02:00
renovate[bot]
27097b7f80
deps: update AWS SDK (#1996)
* deps: update AWS SDK

* deps: tidy all modules

---------

Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-07-03 16:23:51 +02:00
Daniel Weiße
90dbeae16b
cli: fix duplicate backup creation during upgrade apply (#1997)
* Use CLI to fetch measurements in e2e test

* Abort helm service upgrade early if user confirmation is missing

* Add container push to CLI build action

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-07-03 15:13:36 +02:00
Malte Poll
3942cf27f3
bootstrapper: install internal-config cm before constellation-services (#1995) 2023-07-03 10:19:27 +02:00
renovate[bot]
576b48c8b7
deps: update GitHub action dependencies (#1848)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-07-03 08:19:10 +02:00
Malte Poll
66f1333c31
terraform: use single zone loadbalancer frontend on AWS (#1983)
This change is required to ensure we have not tls handshake errors when connecting to the kubernetes api.
Currently, the certificates used by kube-apiserver pods contain a SAN field with the (single) public ip of the loadbalancer.
If we would allow multiple loadbalancer frontend ips, we could encounter cases where the certificate is only valid for one public ip,
while we try to connect to a different ip.
To prevent this, we consciously disable support for the multi-zone loadbalancer frontend on AWS for now.
This will be re-enabled in the future.
2023-06-30 16:56:31 +02:00
Daniel Weiße
d95ddd01d3
helm: fix upgrade command unintentionally skipping all service upgrades (#1992)
* Fix usage of errors.As in upgrade command implementation

* Use struct pointers when working with custom errors

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-30 16:46:05 +02:00
Daniel Weiße
5a9f9c0a52
bootstraper: delete helm chart on installation failure before retrying installation (#1977)
* Delete helm chart on failure before retrying installation

* Add chart name to debug output

* Remove now unused wait flag from helm Release struct

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-30 15:13:29 +02:00
Moritz Eckert
31a22bb443
docs: enable ga and cookie banner (#1986) 2023-06-30 14:42:55 +02:00
Thomas Tendyck
54a313b247 docs: update "feature status of clouds" regarding current AWS SNP offering 2023-06-30 14:07:04 +02:00
Malte Poll
5f8ea1348a
terraform: instance_count => initial_count (#1989)
Normalize naming for the "instance_count" / "initial_count" int terraform to always use "initial_count".
This is required, since there is a naming confusion on AWS.
"initial_count" is more precise, since it reflects the fact that this value is ignored when applying the terraform template
after the scaling groups already exist.
2023-06-30 10:53:00 +02:00
Adrian Stobbe
00ee11084e
add e2e mini to weekly (#1982) 2023-06-30 10:05:24 +02:00
Moritz Sanft
a587558df9
docs: document aws encrypted storage (#1974)
* document AWS encrypted storage

* dont use block express disks

* Update docs/docs/workflows/storage.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/storage.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/storage.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update docs/docs/workflows/storage.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

---------

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-06-30 09:06:52 +02:00
edgelessci
05c43137e4
image: update measurements and image version (#1988)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-06-30 08:48:38 +02:00
Moritz Sanft
7ad284d672
cli: deploy aws csi driver per default (#1981)
* add aws csi driver helm chart

* update chart

* add CSI driver to Constellation default deployment

* generate config doc

* update buildfiles

* use upstream chart

* update buildfile

* set `DeployCSIDriver` in default config

* fix helm test

* whitespace
2023-06-30 08:46:32 +02:00
Daniel Weiße
a241a84770
ci: use generate-config flag for old CLI versions (#1984)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-29 15:46:36 +02:00
Malte Poll
f64e44a438 aws: support LBs in multiple zones when retrieving metadata 2023-06-28 18:13:01 +02:00
Malte Poll
3edc1c3ebb cli: manual AWS terraform state transitions
This commit is designed to be reverted in the future (AB#3248).
Terraform does not implement moved blocks with dynamic targets: https://github.com/hashicorp/terraform/issues/31335 so we have to migrate the terraform state ourselves.
2023-06-28 18:13:01 +02:00
Malte Poll
22ebdace43 terraform: aws node groups 2023-06-28 18:13:01 +02:00
Malte Poll
6dd8a571ec
ci: fix expected value for PCR7 on AWS (#1979)
This has changed when upgrading to Fedora 38.
It didn't surface as a bug since the PCR is marked as warnOnly.
2023-06-28 15:33:14 +02:00
miampf
77b28cb5e7
cli: change generate-config flag to update-config flag (#1897) 2023-06-28 12:47:44 +00:00
Adrian Stobbe
9bb91ca447
terraform: QEMU node groups (#1961)
* init

add variables

add amount to instance_group again

fix tf validate

rollback old names

make fields optional

fix image ref mini

daniel comments

use latest

* Update cli/internal/terraform/terraform/qemu/main.tf

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

* add uid to resource name

* make machine a global variable again

* fix tf

---------

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-06-28 14:42:34 +02:00
Adrian Stobbe
161bb37cba
config: improve usage and meaning of validate (#1975)
* discuss miniup config.Default() usage + discourage usage for Default() in comment

* Update internal/config/config_test.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* add enterprise version check for config.Default

* split config comment lines

* daniel feedback

* featureset.CanUseEmbeddedMeasurmentsAndImage

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-06-28 10:28:48 +02:00
Adrian Stobbe
1edbe962c1
cli: fail fast when CLI and Constellation versions don't match (#1972)
* fail on version mismatch

* rename to validateCLIandConstellationVersionAreEqual

* fix test

* image version must only be major,minor patch equal (ignore suffix)

* add version support doc

* fix: do not check patch version equality for image and cli

* skip validate on force
2023-06-27 18:24:35 +02:00
Malte Poll
90ffcd17e8
deps: downgrade libvirt to 8.10.0 (#1971)
Fixes 264b2df

Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2167302.
Upgrade to Fedora 38 also upgraded libvirt from 8.x to 9.x and introduced the bug.
Since libvirt 9.1 is not yet available for Fedora 38, we downgrade instead.

Introduced by 379c0ce4bfed8733dfbde557c359eecc5474ce38 (379c0ce4bf).
Will be fixed when upgrading to libvirt 9.1 by 5155ab4b2a704285505dfea6ffee8b980fdaa29e (5155ab4b2a).
See also https://listman.redhat.com/archives/libvir-list/2023-February/237603.html
2023-06-27 11:34:07 +02:00
Moritz Sanft
fe0b8c1e5b
remove Terraform targets (#1970) 2023-06-27 11:27:50 +02:00
Otto Bittner
0a36ce6171
config: validate instance type for aws SNP based on attestation variant (#1963)
* config: validate instance type for aws SNP

* apply suggestions
2023-06-26 17:05:12 +02:00
Thomas Tendyck
46e144d19b Use term "attestation variant" consistently 2023-06-26 08:54:11 +02:00
Daniel Weiße
e139eff552
fix: small formating/spelling issues (#1965)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-26 08:34:37 +02:00
Otto Bittner
3a7bb52560
attestation: docs and config changes for SNP attestation (#1959)
* docs: describe SEV-SNP support on AWS
* config: remove launchMeasurement

awsSEVSNP attestation config should not have this value.
It doesn't have a function yet.
2023-06-23 15:38:24 +02:00
Malte Poll
78fb0066e4
ci: add automated tests for reproducible builds (#1914)
* ci: reproducible builds test
* deps: upgrade actionlint to support macos-13 runners
2023-06-23 12:12:32 +02:00
Malte Poll
92cd9c1dac
terraform: always use uniform role names (#1960) 2023-06-23 12:08:30 +02:00
Otto Bittner
114103c46b
ci: download bootlogs in correct aws region (#1956) 2023-06-22 17:56:05 +02:00
Otto Bittner
7388240943
Revert "attestation: add SNP-based attestation for aws-sev-snp (#1916)" (#1957)
This reverts commit c7d12055d1c8e5e6e58c16cd232a8c59a4b64ede.
2023-06-22 17:08:44 +02:00
Adrian Stobbe
487fa1e397
terraform: azure node groups (#1955)
* init

* migration working

* make tf variables with default value optional in go through ptr type

* fix CI build

* pr feedback

* add azure targets tf

* skip migration for empty targets

* make instance_count optional

* change role naming to dashed + add validation

* make node_group.zones optional

* Update cli/internal/terraform/terraform/azure/main.tf

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

* malte feedback

---------

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-06-22 16:53:40 +02:00
Moritz Sanft
224c74f883
csi: aws csi driver policies (#1945)
* add required disk permissions

* update worker node policy for ebs

* Revert "update worker node policy for ebs"

This reverts commit 9c24d374e0b30bc8970e00978462fb36ee6acd4f.

* attach aws managed role instead

* add TODO comment

* remove duplicate role attachment

* Update cli/internal/terraform/terraform/iam/aws/main.tf

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-06-22 14:15:05 +02:00
Adrian Stobbe
4546912f11
cli: upgrade apply --force skips all compatibility checks (#1940)
* use force to skip compatibility and upgrade in progress check

* update doc

* fix tests

* add force check for helm and k8s

* add no-op check

* fix errors as
2023-06-21 15:49:42 +02:00
Otto Bittner
c7d12055d1
attestation: add SNP-based attestation for aws-sev-snp (#1916)
* config: move AMD root key to global constant
* attestation: add SNP based attestation for aws
* Always enable SNP, regardless of attestation type.
* Make AWSNitroTPM default again

There exists a bug in AWS SNP implementation where sometimes
a host might not be able to produce valid SNP reports.
Since we have to wait for AWS to fix this we are merging SNP
attestation as opt-in feature.
2023-06-21 14:19:55 +02:00
Moritz Sanft
94b21e11ad
ci: Windows cli tests (#1859)
* wip: add windows e2e test

* wip: register windows e2e tests

* remove registration

* wip: change CLI artifact name

* basic windows test

* checkout repo

* use correct iam create command

* remove trademarked name

* enable debug logs

* add pwsh liveliness check script

* delimiters

* set kubeconfig env var

* test

* use setx to set env var

* set envvar before liveness probe

* explicitly set kubeconfig
2023-06-21 12:05:04 +02:00
Daniel Weiße
eb1e1502c1
ci: run cdbg with debug verbosity (#1953)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-21 10:26:22 +02:00
Moritz Sanft
b25228d175
cli: store upgrade files in versioned folders (#1929)
* upgrade versioning

* dont pass upgrade kind as boolean

* whitespace

* fix godot lint check

* clarify upgrade check directory suffix

* cli: dry-run Terraform migrations on `upgrade check` (#1942)

* dry-run Terraform migrations on upgrade check

* clean whole upgrade dir

* clean up check workspace after planning

* fix parsing

* extend upgrade check test

* rename unused parameters

* exclude false positives in test
2023-06-21 09:22:32 +02:00
Moritz Sanft
f3c2198a9a
ci: improve pr template (#1946)
* improve PR template

* Update .github/pull_request_template.md

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

---------

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-06-21 08:59:29 +02:00
renovate[bot]
d2c4cd1785
deps: update aws-actions/configure-aws-credentials action to v2 (#1950)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-20 18:59:07 +02:00
renovate[bot]
3f714f538b
deps: update peter-evans/create-pull-request action to v5 (#1949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-20 16:37:01 +02:00
renovate[bot]
684b61ac2b
deps: update docker/build-push-action action to v4 (#1948)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-20 13:39:32 +02:00
renovate[bot]
5bf59808e1
deps: update cachix/install-nix-action action to v22 (#1947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-20 13:08:52 +02:00
renovate[bot]
e5bcd36a23
deps: update K8s constrained Azure versions (#1907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-20 12:55:47 +02:00
Malte Poll
0b262a08bc
cloud: fix discovery of GCP nodes across multiple zones (#1943) 2023-06-20 12:02:31 +02:00
renovate[bot]
de2c21b555
deps: update Python dependencies (#1888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-20 11:04:48 +02:00
Adrian Stobbe
7dcd8c3dab
dev-docs: refactor and add information for newbies (#1912)
* refactor dev-docs structure and add information

* improve doc

* Update dev-docs/workflows/create-debug-cluster.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* Update dev-docs/workflows/create-debug-cluster.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* pr feedback daniel

* Update dev-docs/README.md

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* move to howto again

* split up dev-setup and pull-request into sep files

* fix backticks

* add writing style convention + testing repo

* remove OSS cluster + reduce plugins vs code

* update bazel pre-pr doc

* ghcr img private hint

* add fetch measurement + provider sub-directory hint

* add label doc + pr title check in template

* add OSS build comment

* Update CONTRIBUTING.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update CONTRIBUTING.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update dev-docs/README.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* Update dev-docs/workflows/dev-setup.md

Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>

* thomas feedback

* add go proverb mention

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-06-19 17:39:43 +02:00
Adrian Stobbe
be4a636361
cli: improve user warning / information (#1933)
* print success

* warn when debug img but !debugCluster

* malte feedback

* rename to IsNamedLikeDebugImage
2023-06-19 16:51:39 +02:00
Malte Poll
2808012c9c
terraform: gcp node groups (#1941)
* terraform: GCP node groups

* cli: marshal GCP node groups to terraform variables

This does not have any side effects for users.
We still strictly create one control-plane and one worker group.
This is a preparation for enabling customizable node groups in the future.
2023-06-19 13:02:01 +02:00
Malte Poll
5823aa2438 deps: upgrade pseudo version tool 2023-06-16 16:30:47 +02:00
Malte Poll
9b142f9a25 bazel: upgrade rules_go to a pre-release version to get stripped binaries 2023-06-16 16:30:47 +02:00
Malte Poll
18e7bffc67 bazel: upgrade bazeldnf to produce deterministic rpm2tar artifacts 2023-06-16 16:30:47 +02:00
Malte Poll
bd82071dd5 bazel: add test for containers being equal regardless of the target platform 2023-06-16 16:30:47 +02:00
Malte Poll
6c8dade285 bazel: always choose linux / amd64 distroless base image 2023-06-16 16:30:47 +02:00
Malte Poll
537cdbcfad bazel: trim path to *.pb.go files embedded in go libraries
See https://github.com/bazelbuild/rules_go/issues/3581 for context.
2023-06-16 16:30:47 +02:00
renovate[bot]
4908b5f63c
deps: update golangci/golangci-lint to v1.53.2 (#1924)
* deps: update golangci/golangci-lint to v1.53.2
* deps: tidy all modules
* attestation: silence linter warning


---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-06-16 09:40:08 +02:00
renovate[bot]
ab52e6d4c5
fix: GCP service account creation fails sometimes (#1935)
* deps: update Terraform google to v4.69.1

* deps: tidy all modules

* add delay for service account

* deps: tidy all modules

* add delay for service account

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-06-16 09:37:31 +02:00
edgelessci
a717cefc26
image: update measurements and image version (#1939)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-06-16 08:27:45 +02:00
Malte Poll
684cae4706
nix: add python toolchain deps (#1934) 2023-06-15 17:37:59 +02:00
Paul Meyer
103a757557
deps: upgrade sonobuoy to v0.56.17 (#1937)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-06-15 16:54:38 +02:00
Malte Poll
264b2df902
deps: upgrade to Fedora 38 (#1909)
* image: upgrade mkosi distro version to Fedora 38
* image: remove downgrade of GCP kernel
* ci: upgrade expected measurements for Fedora 38
* deps: upgrade bazeldnf packages to Fedora 38
* deps: upgrade container images to Fedora 38
2023-06-15 16:50:35 +02:00
Paul Meyer
4d6d2b1fa2
Update codeowners (#1936)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-06-15 14:55:38 +02:00
Adrian Stobbe
159d28a2c7
doc: add context to PR template (#1932)
* add context to PR template

* Update pull_request_template.md
2023-06-15 09:13:47 +02:00
Otto Bittner
c33ab624c1
ci: upgrade fromVersion in e2e-upgrade (#1931)
We released 2.8 so we need to test that it can upgrade to HEAD.
2023-06-15 07:49:30 +02:00
Adrian Stobbe
07de6482b2
config: drop support for deprecated Azure's service principal authentication (#1906)
* invalidate app client id field for azure and provide info

* remove TestNewWithDefaultOptions case

* fix test

* remove appClientID field

* remove client secret + rename err

* remove from docs

* otto feedback

* update docs

* delete env test in cfg since no envs set anymore

* Update dev-docs/workflows/github-actions.md

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* WARNING to stderr

* fix check

---------

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-06-14 17:50:57 +02:00
renovate[bot]
d964c74cbb
deps: update dependency io_bazel_rules_go to v0.39.1 (#1921)
* deps: update dependency io_bazel_rules_go to v0.39.1
* deps: tidy all modules
* deps: remove duplicate urls

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-06-14 16:35:52 +02:00
Adrian Stobbe
c5f75513b1
fix: Azure SEV-SNP version always gets overwritten by latest API versions (#1930)
* fix that manual version gets overwritten by latest

* put azure in seperate config file

* otto feedback
2023-06-14 14:17:52 +02:00
Adrian Stobbe
c1f9d86cd3
bazel check: silent env for cleaner output (#1898)
* explicitly ignore pkgs for cleaner output

* do not ignore but redirect stderr

* silent env var to silent stderr

* add silent env var to vuln,lint,tf

* fix golangci silent

* Update bazel/ci/terraform.sh.in

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

* Update bazel/ci/golicenses.sh.in

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

* Update bazel/ci/govulncheck.sh.in

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

* Update bazel/ci/golangci_lint.sh.in

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>

---------

Co-authored-by: Malte Poll <1780588+malt3@users.noreply.github.com>
2023-06-14 13:58:21 +02:00
Otto Bittner
7a1c70d7e5
ci: replace katexochen with elchead in assignee list (#1928)
katexochen is currently working on CoCo and not
involved in active development.
2023-06-14 11:44:45 +02:00
Malte Poll
ee77e3922a
ci: explicitly add CLI signature as release artifact (#1917) 2023-06-14 09:56:11 +02:00
edgelessci
8910e9bac4
image: update measurements and image version (#1927)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-06-14 08:31:30 +02:00
renovate[bot]
520571c3d1
deps: update dependency com_github_bazelbuild_buildtools to v6 (#1925)
* deps: update dependency com_github_bazelbuild_buildtools to v6
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-13 18:33:49 +02:00
renovate[bot]
16621b5d15
deps: update dependency rules_pkg to v0.9.1 (#1923)
* deps: update dependency rules_pkg to v0.9.1
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-13 18:31:19 +02:00
renovate[bot]
42735ae1b1
deps: update bufbuild/buf to v1.21.0 (#1922)
* deps: update bufbuild/buf to v1.21.0
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-13 18:20:44 +02:00
renovate[bot]
5442e86150
deps: update dependency bazel_gazelle to v0.31.1 (#1919)
* deps: update dependency bazel_gazelle to v0.31.1
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-13 18:18:50 +02:00
renovate[bot]
053b371e93
deps: update dependency bazel_skylib to v1.4.2 (#1920)
* deps: update dependency bazel_skylib to v1.4.2
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-13 18:03:40 +02:00
renovate[bot]
56d0575459
deps: update dependency bazel to v6.2.1 (#1918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-13 17:50:24 +02:00
3u13r
a2c98eb1d5
Correctly deploy the AWS CCM (#1853)
* aws: stop using the imds api for tags

* aws: disable tags in imds api

* aws: only tag instances with non-lecagy tag

* bootstrapper: always let coredns run before cilium

* debugd: make debugd less noisy

* fixup fix aws imds test

* fixup unsued context

* move getting instance id to readInstanceTag
2023-06-13 09:58:39 +02:00
Adrian Stobbe
4f63481b7d
config: fix fetcher parse azure sev-snp version (#1911) 2023-06-12 16:04:54 +02:00
Daniel Weiße
ab74730fd7
Update go-tpm-tools fork (#1910)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-06-12 15:59:40 +02:00
Adrian Stobbe
e738f15f0f
cdbg: make endpoint deployment failure more transparent (#1883)
* add retry + timeout + intercept grpc logs

* LogStateChanges inside grplog pkg

* remove retry and tj/assert

* rename nit

* Update debugd/internal/cdbg/cmd/deploy.go

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* Update debugd/internal/cdbg/cmd/deploy.go

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* paul feedback

* return waitFn instead of WaitGroup

* Revert "return waitFn instead of WaitGroup"

This reverts commit 45700f30e341ce3af509b687febbc0125f7ddb38.

* log routine inside debugd constructor

* test doubles names

* Update debugd/internal/cdbg/cmd/deploy.go

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* fix newDebugClient closeFn

---------

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-06-12 13:45:34 +02:00
renovate[bot]
167052d443
deps: update dependency hermetic_cc_toolchain to v2.0.0 (#1860)
* deps: update dependency hermetic_cc_toolchain to v2.0.0
* deps: tidy all modules
* bazel: target glibc 2.23 to enable rbe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-06-09 17:39:30 +02:00
3u13r
b71b5103ae
ci: migrate e2e lb test to bazel (#1892)
* ci: migrate lb e2e test to bazel
* ci: disable shared bazel cache on github runners
2023-06-09 16:59:19 +02:00
Otto Bittner
8f21972aec
attestation: add awsSEVSNP as new variant (#1900)
* variant: move into internal/attestation
* attesation: move aws attesation into subfolder nitrotpm
* config: add aws-sev-snp variant
* cli: add tf option to enable AWS SNP

For now the implementations in aws/nitrotpm and aws/snp
are identical. They both contain the aws/nitrotpm impl.
A separate commit will add the actual attestation logic.
2023-06-09 15:41:02 +02:00
Thomas Tendyck
947d0cb20a cli: hide --insecure of config fetch-measurements 2023-06-09 15:07:31 +02:00
Adrian Stobbe
3fde118b33
config: enable azure snp version fetcher again + minimum age for latest version (#1899)
* fetch latest version when older than 2 weeks

* extend hack upload tool to pass an upload date

* Revert "config: disable user-facing version Azure SEV SNP fetch for v2.8  (#1882)"

This reverts commit c7b22d314a35fa260b97bf156989328caf1c384b.

* fix tests

* use NewAzureSEVSNPVersionList for type guarantees

* Revert "use NewAzureSEVSNPVersionList for type guarantees"

This reverts commit 942566453f4b4a2b6dc16f8689248abf1dc47db4.

* assure list is sorted

* improve root.go style

* daniel feedback
2023-06-09 12:48:12 +02:00
Moritz Sanft
72e168e653
bazel: pseudo version tool freshness check (#1869)
* switch to darwin compatible shasum

* add bazel rule

* update shellscript for in-place updates

* Revert "update shellscript for in-place updates"

This reverts commit 87d39b06f7d81f9bcab40b2b517b2055216d727a.

* add version tool freshness check

* remove pseudo-version file

* revert to `sha256sum`

* fix workflow indentation
2023-06-09 11:50:51 +02:00
Moritz Sanft
892752a1f8
add necessary permissions (#1905) 2023-06-09 11:50:39 +02:00
Moritz Eckert
9463d6fb27
cli: fix azure config warning message (#1902) 2023-06-09 11:16:54 +02:00
Otto Bittner
3a54ca91a7
deps: bump go patch version (#1903) 2023-06-09 10:53:17 +02:00
Adrian Stobbe
d9c604ed2c
terraform: update aws to v5.1.0 (#1891) 2023-06-09 10:37:25 +02:00
Adrian Stobbe
e0fe8e6ca0
local: fix mac issues in bazel (#1893) 2023-06-09 10:35:52 +02:00
renovate[bot]
7c345f4503
deps: update github.com/gophercloud/utils digest to de873b9 (#1843)
* deps: update github.com/gophercloud/utils digest to de873b9
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-09 10:02:59 +02:00
Malte Poll
8c3617faf0
ci: do not manually clear measurements on verify e2e (#1889) 2023-06-09 09:25:30 +02:00
Otto Bittner
3e583946a1
rfc: specify how to handle launchmeasurements (#1894)
* Describes how to keep the values in the API up-to-date.
* Describes API object structure.
* Describe user config options.

Co-authored-by: Daniel Weiße <dw@edgeless.systems>
2023-06-09 08:45:27 +02:00
Malte Poll
17b583ddc5
misc: start v2.9.0-pre (#1895) 2023-06-08 15:31:47 +02:00
Adrian Stobbe
e9f9337cb9
Revert "ci: fix versionsapi cli container Dockerfile (#1856)" (#1896)
This reverts commit 0fac6a03cc0a0258bcdabc5cca4f8bc8ffc58604.
2023-06-07 17:18:59 +02:00
Adrian Stobbe
4284f892ce
api: rename /api/versions to versionsapi and /api/attestationcfig to attestationconfigapi (#1876)
* rename to attestationconfigapi + put client and fetcher inside pkg

* rename api/version to versionsapi and put fetcher + client inside pkg

* rename AttestationConfigAPIFetcher to Fetcher
2023-06-07 16:16:32 +02:00
renovate[bot]
25037026e1
deps: update Python dependencies (#1887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-07 10:36:52 +02:00
edgelessci
f43366ed89
docs: add release v2.8.0 (#1884)
* docs: add release v2.8.0
* docs: mention required AWS IAM permissions for upgrades

---------

Co-authored-by: malt3 <malt3@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-06-07 10:34:07 +02:00
Adrian Stobbe
51d66b2609
doc: vs code linter issue (#1880) 2023-06-07 10:32:06 +02:00
3u13r
3ad9258a57
deps: bump ginkgo version (#1885) 2023-06-06 18:15:48 +02:00
renovate[bot]
6f7c8999f3
deps: update dependency cryptography to v41 [SECURITY] (#1875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-06 18:15:26 +02:00
Malte Poll
b3c052e299
operators: cleanup placeholder nodeversion (#1881)
* operators: cleanup placeholder nodeversion
* e2e: improve upgrade test portability
2023-06-06 15:22:06 +02:00
Malte Poll
025d34a259
ci: fix docker-login on macOS runner (#1877) 2023-06-06 12:20:09 +02:00
Adrian Stobbe
c7b22d314a
config: disable user-facing version Azure SEV SNP fetch for v2.8 (#1882)
* config: disable user-facing version fetch for Azure SEV SNP

don't allow "latest" value and disable user-facing version fetcher for Azure SEV SNP

Co-authored-by: @derpsteb

* fix unittests

* attestation: getTrustedKey

---------

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-06-06 10:44:13 +02:00
3u13r
7c07e3be18
Add --insecure to config fetch-measurement (#1879)
* cli: add --insecure to fetch-measurements

* cli: rename fake to stub

* ci: upload measurements for debug images

* fix cli docs
2023-06-06 10:32:22 +02:00
Malte Poll
f7f11c32f8
image: choose unique AWS image names based on the attestation variant (#1868) 2023-06-06 08:35:26 +02:00
Adrian Stobbe
99a88c033c
api: use new signature JSON format (#1872)
* use new impl for client.UploadAzureSEVSNP

* fix: fetcher must parse new signature format

* version-file is not persistentflag

* fix fetcher tests
2023-06-05 16:10:44 +02:00
Otto Bittner
fa01569cc6
staticupload: don't request empty invalidation (#1870)
If no files have been touched, do not initiate an invalidation.
2023-06-05 15:47:33 +02:00
Otto Bittner
06cd750345
config: move all config types into file config.go (#1878)
docgen only includes doc comments from one single file in
it's output. Therefore all config types need to be located in config.go
2023-06-05 15:46:55 +02:00
Malte Poll
439359ffbc
cli: prevent terraform apply drift when patching and re-applying existing terraform deployment (#1873)
The implementation would recreate the gcp instance template (including all instances and state disks) whenever the image tfvar changes.
Fixed by ignoring lifecycle changes on the instance templates.
Fixes 8c3b963
2023-06-05 14:52:39 +02:00
Malte Poll
900d51d49f
ci: select correct target version for upgrade e2e test in release pipeline (#1874) 2023-06-05 13:56:16 +02:00
Adrian Stobbe
c446f36b0f
config: Azure SNP tool can delete specific version from attestation API (#1863)
* client supports delete version

* rename to new attestation / fetcher naming

* add delete command to upload tool

* test client delete

* bazel update

* use general client in attestation client

* Update hack/configapi/cmd/delete.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* daniel feedback

* unit test azure sev upload

* Update hack/configapi/cmd/delete.go

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>

* add client integration test

* new client cmds use apiObject

---------

Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-06-05 12:33:22 +02:00
Otto Bittner
315b6c2f01
api: use correct error types in versions/cli (#1867)
Imported wrong error types during refactoring.
2023-06-05 10:51:05 +02:00
Otto Bittner
6bda62d397
cli: skip k8s upgrade in case of outdated version (#1864)
If an unsupported, outdated k8s patch version is used,
the user should still be able to run upgrade apply.
2023-06-05 09:13:02 +02:00
Malte Poll
eb9bea1cff
docs: refine instructions for upgrade process (#1865)
Incorporate customer feedback regarding the recommended commands when upgrading a Constellation cluster.
Showing the full command "constellation upgrade check --write-config" is important to ensure only valid, safe upgrades are applied.

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-06-05 09:10:20 +02:00
Otto Bittner
620bb45330
e2e: asynchronously check constellation status (#1780)
status may fail early on, if the control plane starts upgrading quickly
and becomes unavailable.
In that case we will have to retry a few times.
2023-06-05 08:15:17 +02:00
Malte Poll
7c34aef263
cli: write target k8s version to config if new version is found on upgrade check (#1862) 2023-06-02 17:19:41 +02:00
edgelessci
b2527d314e
image: update measurements and image version (#1861)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
2023-06-02 16:06:34 +02:00
Adrian Stobbe
a813760f96
config: automatically upload new Azure SNP versions to API + sign version with release key (#1854)
* sign version with release key and remove version from fetcher interface
* extend azure-reporter GH action to upload updated version values to the Attestation API
2023-06-02 12:10:22 +02:00
renovate[bot]
18da9b8128
deps: update dependency com_github_bazelbuild_buildtools to v4.2.5 (#1858)
* deps: update dependency com_github_bazelbuild_buildtools to v4.2.5

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-02 11:56:14 +02:00
Otto Bittner
0fac6a03cc
ci: fix versionsapi cli container Dockerfile (#1856)
paths were not updated during refactoring
2023-06-02 11:29:46 +02:00
renovate[bot]
a31c3dbbcd
deps: update ubuntu:22.04 Docker digest to 2fdb1cf (#1857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-02 11:20:59 +02:00
Malte Poll
e1d3afe8d4
ci: use aws s3 client that invalidates cloudfront cache for places that modify Constellation api (#1839) 2023-06-02 11:20:01 +02:00
renovate[bot]
93569ff54c
deps: update golang.org/x/exp digest to 2e198f4 (#1844)
* deps: update golang.org/x/exp digest to 2e198f4
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-02 11:03:33 +02:00
Moritz Sanft
8c3b963a3f
cli: Terraform upgrades maa patching (#1821)
* patch maa after upgrade

* buildfiles

* reword comment

* remove whitespace

* temp: log measurements URL

* temp: update import

* ignore changes to attestation policies

* add issue URL

* separate output in e2e upgrade test

* use enterprise CLI for e2e test

* remove measurements print

* add license headers
2023-06-02 10:47:44 +02:00
edgelessci
7ef7f09dda
image: update measurements and image version (#1855)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-06-02 10:13:22 +02:00
Otto Bittner
1b92d96feb
dev-docs: add e2e tag to vsCode config (#1852) 2023-06-02 09:53:00 +02:00
Otto Bittner
30f2b332b3
api: restructure api pkg (#1851)
* api: rename AttestationVersionRepo to Client
* api: move client into separate subpkg for
clearer import paths.
* api: rename configapi -> attestationconfig
* api: rename versionsapi -> versions
* api: rename sut to client
* api: split versionsapi client and make it public
* api: split versionapi fetcher and make it public
* config: move attestationversion type to config
* api: fix attestationconfig client test

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-06-02 09:19:23 +02:00
Malte Poll
289665eb22
ci: remove setup-go action / disable cache where applicable (#1850)
Runners sometimes fail because they run out of disk space.
One reason this happens is a change in the setup-go action@v4:

> The V4 edition of the action offers: Enabled caching by default

To combat this, we now disable the cache if it was not enabled explicitly before.
Additionally, we remove setup-go where it is no longer needed.
2023-06-01 15:16:00 +02:00
Adrian Stobbe
b51cc52945
config: sign Azure versions on upload & verify on fetch (#1836)
* add SignContent() + integrate into configAPI

* use static client for upload versions tool; fix staticupload calleeReference bug

* use version to get proper cosign pub key.

* mock fetcher in CLI tests

* only provide config.New constructor with fetcher

Co-authored-by: Otto Bittner <cobittner@posteo.net>
Co-authored-by: Daniel Weiße <66256922+daniel-weisse@users.noreply.github.com>
2023-06-01 13:55:46 +02:00
3u13r
e0285c122e
todo responsibilities and cleanup (#1837)
* chore: add TODO responsibilities

* chore: remove not needed TODOs

* chore: remove outdated migrations

* chore: remove resolved goleak exception

* chore: remove not needed cosign env

* config: add link to our Azure snp docs
2023-06-01 12:33:06 +02:00
Otto Bittner
0c13f3ed8d image: add aws_aws-sev-snp variant
This needs no changes to the existing AWS image.
The images have worked without modification so far.
2023-06-01 11:25:31 +02:00
Malte Poll
8a51ae1ec3
ci: do not sign & upload debug image measurements (#1849) 2023-06-01 10:58:34 +02:00
edgelessci
13ffb93ad8
image: update measurements and image version (#1840)
Co-authored-by: malt3 <malt3@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-06-01 10:45:25 +02:00
renovate[bot]
bff8e684e1
deps: update golang:1.20.4 Docker digest to 690e413 (#1845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: malt3 <29139614+renovate[bot]@users.noreply.github.com>
2023-06-01 09:26:31 +02:00
renovate[bot]
1fde3929a7
deps: update fedora:37 Docker digest to ab2fd8d (#1846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: malt3 <mp@edgeless.systems>
2023-06-01 09:03:05 +02:00
renovate[bot]
885febf109
deps: update module github.com/sigstore/rekor to v1.2.0 [SECURITY] (#1842)
* deps: update module github.com/sigstore/rekor to v1.2.0 [SECURITY]

* chore: tidy

* deps: update pseudo version tool hashes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-31 23:30:27 +02:00
3u13r
fbcbb9a766
deps: align k8s deps (#1841) 2023-05-31 17:10:03 +02:00
Malte Poll
c5e016a8e2 attestation: allow measurement generator to work regardless of build tags 2023-05-31 14:00:00 +02:00
Malte Poll
a1ec899171 ci: use enterprise cli for e2e tests 2023-05-31 14:00:00 +02:00
Malte Poll
26bc653d0e bazel: build both cli variants as part of devbuild 2023-05-31 14:00:00 +02:00
Malte Poll
c62e54831b cli: define feature set of cli editions and exit early if a feature is not supported 2023-05-31 14:00:00 +02:00
Malte Poll
8a851c8f39 cli: dynamically select signature validation pubkey for release and pre-release artifacts 2023-05-31 14:00:00 +02:00
renovate[bot]
ada66a64a1
deps: update Kubernetes versions (#1807)
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-30 16:36:07 +02:00
renovate[bot]
b041344331
deps: update registry.k8s.io/autoscaling/cluster-autoscaler Docker tag to v1.27.2 (#1831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-30 15:10:51 +02:00
renovate[bot]
c50c5e69d9
deps: update K8s constrained Azure versions (#1787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-30 14:36:37 +02:00
Malte Poll
29b93065b3
ci: static file uploader with automatic cache invalidation (#1833) 2023-05-30 13:48:29 +02:00
miampf
8686c5e7e2
bootstrapper: collect journald logs on failure (#1618) 2023-05-30 11:47:36 +00:00
Malte Poll
60b125cb59
cli: add windows amd64 build target (#1835) 2023-05-30 12:02:43 +02:00
Moritz Sanft
6d5e7e1f7c
cli: support StackIT provider on config generate (#1803)
* support stackit provider on config generate

* update cli reference

* default config values

* deploy csi driver

Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>

---------

Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>
2023-05-30 09:02:50 +02:00
Moritz Sanft
a0dea7e69b
make imagefetcher visible to all subpackages (#1832) 2023-05-26 12:05:02 +02:00
3u13r
661f084ffa
cli: use uami for in-cluter authentication (#1820) 2023-05-26 11:45:03 +02:00
renovate[bot]
9502bc8ff4
deps: update K8s constrained GCP versions (#1829)
* deps: update K8s constrained GCP versions

* deps: bump autoscaler image to 1.27

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-26 11:24:12 +02:00
Adrian Stobbe
0a6e5ec02e
config: dynamic attestation configuration through S3 backed API (#1808) 2023-05-25 17:43:44 +01:00
3u13r
25211dc154
ci: codeql disable autobuild for go (#1828) 2023-05-25 18:20:44 +02:00
Malte Poll
76bf5e8e28 ci: upload image info v2 and measurements v2 in image build pipeline 2023-05-25 15:01:15 +02:00
Malte Poll
217a744606 image: add go code to upload image info and measurements 2023-05-25 15:01:15 +02:00
Malte Poll
b8751f35f9 image: add intermediate "image" verb to upload tool 2023-05-25 15:01:15 +02:00
Malte Poll
0a7349ca41 attestation: merging of ImageMeasurementsV2 2023-05-25 15:01:15 +02:00
Malte Poll
874c4b76cf versionsapi: merging of ImageInfo 2023-05-25 15:01:15 +02:00
Malte Poll
d0e53cbb59 cli: image info (v2) 2023-05-25 15:01:15 +02:00
Malte Poll
cd7b116794 cli: image measurements (v2) 2023-05-25 15:01:15 +02:00
Malte Poll
e5b394db87 cli: image measurements (v2) 2023-05-25 15:01:15 +02:00
Malte Poll
2ebc0cf2c8 image: set attestation variant explicitly 2023-05-25 15:01:15 +02:00
Malte Poll
9a1ee8697e osimage: advertise SEV SNP support for gcp images 2023-05-25 15:01:15 +02:00
Otto Bittner
c010a4d742 ci: fix aws-snp-launchmeasurement pipeline
Misspelled variable name.
2023-05-25 14:00:45 +02:00
Malte Poll
7cff47f30f
ci: run release workflow on temporary branch (#1628) 2023-05-25 10:14:42 +02:00
renovate[bot]
2afddcb0f8
deps: update K8s dependencies (#1599)
* deps: update K8s dependencies

* deps: bump controller runtime

* chore: tidy

* bump helm and migrate controller runtime

* fix helm deprecation

---------

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-24 18:57:45 +02:00
Malte Poll
81c9c5205c
ci: explicitly disable cgo in golangci-lint (#1822) 2023-05-24 16:40:15 +02:00
renovate[bot]
0eeb1d2ceb deps: update dependency @cmfcmf/docusaurus-search-local to v1 2023-05-24 13:47:50 +02:00
renovate[bot]
9dd428557f
deps: update dependency prism-react-renderer to v2 (#1824)
* deps: update dependency prism-react-renderer to v2

* Update docusaurus.config.js

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-05-24 13:30:14 +02:00
renovate[bot]
1ea2814fe4
deps: update dependency mermaid to v10 (#1823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-24 13:10:19 +02:00
Otto Bittner
06a32a85a7 ci: add pipeline to precalc launchmeasurements
This is for SNP on AWS.
2023-05-24 12:58:39 +02:00
renovate[bot]
be8d993cb7
deps: update module github.com/sigstore/sigstore to v1.6.4 (#1814)
* deps: update module github.com/sigstore/sigstore to v1.6.4

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-23 16:25:26 +02:00
Thomas Tendyck
69464bca4b docs: publish 2023-05-23 15:51:46 +02:00
Malte Poll
050fccc591 ci: do not run unit tests on macOS 2023-05-23 15:11:10 +02:00
Malte Poll
c4ad246910 wip: cached unit tests 2023-05-23 15:11:10 +02:00
Leonard Cohnen
c98644df2b ci: use bazel for unittests 2023-05-23 15:11:10 +02:00
Malte Poll
b467327128 ci: optimize bazel output for web-based console 2023-05-23 15:11:10 +02:00
Malte Poll
eae7744890 bazel: speed up tests 2023-05-23 15:11:10 +02:00
Malte Poll
660781d35e misc: bazelisk -> bazel 2023-05-23 15:11:10 +02:00
Malte Poll
a0ac230298 ci: remove bazel repo cache hosted in github actions cache 2023-05-23 15:11:10 +02:00
Malte Poll
41cc759b44 ci: use self hosted (cached) runners 2023-05-23 15:11:10 +02:00
renovate[bot]
a5215d3268
deps: update dependency requests to v2.31.0 [SECURITY] (#1816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 13:45:15 +02:00
Malte Poll
c1dbbf34c3 cryptsetup: Provide implementation without cgo 2023-05-23 13:44:56 +02:00
Malte Poll
524718d82c bazel: disable CGO in govulncheck 2023-05-23 13:44:56 +02:00
Malte Poll
21d4e5864f disk-mapper: allow building without cgo dependencies for linting 2023-05-23 13:44:56 +02:00
Malte Poll
ad85dacf6a csi: allow building without cgo dependencies for linting 2023-05-23 13:44:56 +02:00
Malte Poll
94758bc392 bootstrapper: allow building without cgo dependencies for linting 2023-05-23 13:44:56 +02:00
Malte Poll
78085cba68 qemu-metadata-api: allow building without cgo dependencies for linting 2023-05-23 13:44:56 +02:00
Malte Poll
15d51c3a3f bazel: use hermetic go in PATH for golicenses 2023-05-23 13:44:56 +02:00
Malte Poll
4bffeefd70 bazel: use hermetic go in PATH for golangci-lint 2023-05-23 13:44:56 +02:00
renovate[bot]
66ff0b0b78
deps: update registry.k8s.io/provider-aws/cloud-controller-manager Docker tag to v1.27.1 (#1754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 13:30:38 +02:00
3u13r
6062b10035
cli: split image into oss and enterprise (#1788) 2023-05-23 10:49:47 +02:00
Adrian Stobbe
cfef384f36
config: support latest as version value for Azure SEVSNP (#1786)
* support latest as version value
2023-05-23 08:55:49 +01:00
Otto Bittner
b86b52a598 ci: run upgrade check during e2e-upgrade 2023-05-23 07:44:37 +02:00
Otto Bittner
3b3be85841 cli: fix supportedVersions during upgrade check
Previously the service version was always 0.0.0
2023-05-23 07:44:37 +02:00
renovate[bot]
13f1eb23d7
deps: update module github.com/stretchr/testify to v1.8.3 (#1815)
* deps: update module github.com/stretchr/testify to v1.8.3

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-22 17:35:28 +02:00
renovate[bot]
6ba461015d
deps: update module github.com/hashicorp/hc-install to v0.5.2 (#1812)
* deps: update module github.com/hashicorp/hc-install to v0.5.2

* deps: tidy all modules

* chore: tidy + update

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-22 16:32:00 +02:00
renovate[bot]
2a721bfa33
deps: update module github.com/mattn/go-isatty to v0.0.19 (#1813)
* deps: update module github.com/mattn/go-isatty to v0.0.19

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-22 16:31:52 +02:00
renovate[bot]
971e814551
deps: update module github.com/google/go-tpm-tools to v0.3.12 (#1811)
* deps: update module github.com/google/go-tpm-tools to v0.3.12

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-22 15:40:42 +02:00
renovate[bot]
624af80f7f
deps: update module cloud.google.com/go/compute to v1.19.3 (#1810)
* deps: update module cloud.google.com/go/compute to v1.19.3

* chore: tidy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-22 15:29:48 +02:00
3u13r
6e574fd52c
ci: fix os image archive path (#1809) 2023-05-22 14:05:34 +02:00
Moritz Sanft
c69e6777bd
cli: Terraform migrations on upgrade (#1685)
* add terraform planning

* overwrite terraform files in upgrade workspace

* Revert "overwrite terraform files in upgrade workspace"

This reverts commit 8bdacfb8bef23ef2cdbdb06bad0855b3bbc42df0.

* prepare terraform workspace

* test upgrade integration

* print upgrade abort

* rename plan file

* write output to file

* add show plan test

* add upgrade tf workdir

* fix workspace preparing

* squash to 1 command

* test

* bazel build

* plan test

* register flag manually

* bazel tidy

* fix linter

* remove MAA variable

* fix workdir

* accept tf variables

* variable fetching

* fix resource indices

* accept Terraform targets

* refactor upgrade command

* Terraform migration apply unit test

* pass down image fetcher to test

* use new flags in e2e test

* move file name to constant

* update buildfiles

* fix version constant

* conditionally create MAA

* move interface down

* upgrade dir

* update buildfiles

* fix interface

* fix createMAA check

* fix imports

* update buildfiles

* wip: workspace backup

* copy utils

* backup upgrade workspace

* remove debug print

* replace old state after upgrade

* check if flag exists

* prepare test workspace

* remove prefix

Co-authored-by: Otto Bittner <cobittner@posteo.net>

* respect file permissions

* refactor tf upgrader

* check workspace before upgrades

* remove temp upgrade dir after completion

* clean up workspace after abortion

* fix upgrade apply test

* fix linter

---------

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2023-05-22 13:31:20 +02:00
Moritz Sanft
339e750c18
bazel: add Bazel shell completion scripts (#1804)
* add bazel autocomplete script

* indentation

* shfmt

* shellcheck ignore completion file

* fix shellcheck ignore path
2023-05-22 12:54:38 +02:00
Malte Poll
dc9b3c1937
ci: run e2e tests as last step of release pipeline (#1793) 2023-05-22 09:22:00 +02:00
Malte Poll
ab257944f9
bazel: provide semi-hermetic python toolchain (#1753)
The actual python version used in bazel is hermetic after this PR.
However, we still require a host python toolchain for bootstrapping (this will be fixed soon upstream) and host wide glibc (+ libcrypt.so.1).
2023-05-22 09:10:41 +02:00
edgelessci
87b9d85669
image: update measurements and image version (#1798)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-05-19 18:17:53 +02:00
renovate[bot]
4ee4423389
deps: update github.com/gophercloud/utils digest to 6eab72e (#1791)
* deps: update github.com/gophercloud/utils digest to 6eab72e

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-19 15:34:20 +02:00
renovate[bot]
8bd93680f1
deps: update katexochen/ghh to v0.2.1 (#1805)
* deps: update katexochen/ghh to v0.2.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-19 14:18:16 +02:00
3u13r
964775c4c2
Add autoscaling and cluster upgrade support for AWS (#1758)
* aws: autoscaling and upgrades

* docs: update scaling and upgrades for AWS

* deps: pin vuln check against release
2023-05-19 13:57:31 +02:00
renovate[bot]
12ccfea543
deps: update module golang.org/x/tools to v0.9.1 (#1801)
* deps: update module golang.org/x/tools to v0.9.1

* chore: tidy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-19 13:18:54 +02:00
renovate[bot]
4c8568963b
deps: update module golang.org/x/crypto to v0.9.0 (#1799)
* deps: update module golang.org/x/crypto to v0.9.0

* chore: tidy

* deps: bump pseudo version tool

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-19 12:00:25 +02:00
3u13r
3b7bae7535
deps: bump minimum terraform version (#1797) 2023-05-18 12:59:10 +02:00
edgelessci
2754d7817d
image: update measurements and image version (#1795)
Co-authored-by: 3u13r <3u13r@users.noreply.github.com>
2023-05-17 19:39:32 +02:00
Adrian Stobbe
f99e06b63b
cli: new flag to set the attestation type for config generate (#1769)
* add attestation flag to specify type in config
2023-05-17 16:53:56 +02:00
miampf
e7b7a544f0
docs: add a qemu section (#1724) 2023-05-17 13:21:35 +00:00
Moritz Eckert
6252193879 cli: deploy cinder as OpenStack CSI plugin 2023-05-17 15:20:39 +02:00
Moritz Eckert
9607f01510 cli: add cinder csi helm charts 2023-05-17 15:20:39 +02:00
Malte Poll
7b313feaa3 ci: increase mini-e2e waiting timeout for docker daemon to start 2023-05-17 11:37:26 +02:00
Daniel Weiße
ad924181d9 Allow tdx repo in bazel license check
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-17 11:37:26 +02:00
Daniel Weiße
1d5af5f0f4 Rebase fixes
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-17 11:37:26 +02:00
Nils Hanke
63d938d9a4 cli: improve error handling for validator 2023-05-17 11:37:26 +02:00
Nils Hanke
e130188ecd cli: add verify support for TDX 2023-05-17 11:37:26 +02:00
Nils Hanke
e80474ff7f oid: add missing String() for QEMUTDX 2023-05-17 11:37:26 +02:00
Nils Hanke
c507bd7d95 cli: Generalize PCRs to Measurements in preparation for TDX 2023-05-17 11:37:26 +02:00
Daniel Weiße
7e5e3b9d2e Add license exception for tdx repo
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-17 11:37:26 +02:00
Daniel Weiße
c478df36fa Add TDX bazel files
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-17 11:37:26 +02:00
Daniel Weiße
bda999d54e Use TDX device to mark node as initialized (#1426)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-17 11:37:26 +02:00
Nils Hanke
9e987778e0 measurements: Add length field for WithAllBytes 2023-05-17 11:37:26 +02:00
Nils Hanke
fe3622d982 cli/attestation: use const for PCR/TDX lengths 2023-05-17 11:37:26 +02:00
Nils Hanke
d58b5f1c06 measurement-reader: unify TPM & TDX sorting 2023-05-17 11:37:26 +02:00
Nils Hanke
253d201ff3 measurement-reader: add support for TDX 2023-05-17 11:37:26 +02:00
Daniel Weiße
dd2da25ebe attestation: tdx issuer/validator (#1265)
* Add TDX validator

* Add TDX issuer

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-17 11:37:26 +02:00
Malte Poll
d104af6e51 image: support intel TDX direct linux boot under TDX OVMF 2023-05-17 11:37:26 +02:00
Malte Poll
79986a2b25 cli: implement qemu direct linux boot 2023-05-17 11:37:26 +02:00
renovate[bot]
daea874b46
deps: update com_github_ash2k_bazel_tools digest to 2add5bb (#1789)
* deps: update com_github_ash2k_bazel_tools digest to 2add5bb
* deps: set bazel-tools hash

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-05-17 09:43:36 +02:00
renovate[bot]
53758e65ad
deps: update module github.com/siderolabs/talos/pkg/machinery to v1.4.4 (#1764)
* deps: update module github.com/siderolabs/talos/pkg/machinery to v1.4.4

* deps: tidy all modules

* update pseudo version tool

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-16 22:19:16 +02:00
renovate[bot]
230ea79bcc
deps: update Google SDK (#1748)
* deps: update Google SDK

* deps: fix grpc_testing import

* deps: update pseudo version tool hashes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-16 18:13:17 +02:00
Malte Poll
d7b63bdc37
deps: update bazeldnf digest to v0.5.7 (#1782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 17:54:25 +02:00
renovate[bot]
fdcb74e171
deps: update Terraform aws to v4.67.0 (#1775)
* deps: update Terraform aws to v4.67.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 17:39:55 +02:00
renovate[bot]
6c1f7a4758
deps: update Terraform azuread to v2.39.0 (#1776)
* deps: update Terraform azuread to v2.39.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 17:15:57 +02:00
renovate[bot]
f9b4f1765d
deps: update Terraform azurerm to v3.56.0 (#1777)
* deps: update Terraform azurerm to v3.56.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 17:15:25 +02:00
renovate[bot]
fd3c93660e
deps: update Terraform google to v4.65.1 (#1778)
* deps: update Terraform google to v4.65.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 16:07:21 +02:00
renovate[bot]
0ce01cbad3
deps: update Terraform random to v3.5.1 (#1779)
* deps: update Terraform random to v3.5.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 16:01:47 +02:00
renovate[bot]
780fa9a238
deps: update Terraform google-beta to v4.64.0 (#1767)
* deps: update Terraform google-beta to v4.64.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 15:26:26 +02:00
renovate[bot]
87bf36d757
deps: update Terraform google to v4.64.0 (#1766)
* deps: update Terraform google to v4.64.0

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-16 15:11:59 +02:00
Moritz Sanft
65e7778955
dont stop check on err (#1774) 2023-05-16 14:38:44 +02:00
Malte Poll
f596a13188
image: include stream in gcp image name (#1768) 2023-05-16 12:38:38 +02:00
Daniel Weiße
c834911be1
config: fix migration for v2.7 idkeydigest enforcement format (#1770)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-16 10:32:01 +02:00
Otto Bittner
2dc105224d
ci: set toImage argument in e2e-test-release (#1722) 2023-05-16 08:54:12 +02:00
edgelessci
f30e0c9bdd
image: update measurements and image version (#1756)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-05-12 18:51:47 +02:00
renovate[bot]
080e0bcaec
deps: update golang:1.20.4 Docker digest to 685a22e (#1761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-12 18:18:13 +02:00
renovate[bot]
cd28b3a39f
deps: update module github.com/docker/docker to v23.0.3+incompatible [SECURITY] (#1762)
* deps: update module github.com/docker/docker to v23.0.3+incompatible [SECURITY]

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-05-12 18:07:20 +02:00
3u13r
4024b9cf71
ci: fix minicon e2e test (#1763)
* ci: push containers during minicon e2e

* cli: set testing nvram for pre images in minicon
2023-05-12 17:14:32 +02:00
Daniel Weiße
0e7d50b465
Select attestation variant for verify test (#1755)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-12 11:06:49 +02:00
renovate[bot]
fe115bdb16
deps: update module github.com/sigstore/rekor to v1.1.1 [SECURITY] (#1729)
* deps: update module github.com/sigstore/rekor to v1.1.1 [SECURITY]

* deps: bump oras

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Leonard Cohnen <lc@edgeless.systems>
2023-05-11 17:23:17 +02:00
Moritz Eckert
08b37ad59a
rfc: fix broken link (#1757) 2023-05-11 14:48:23 +02:00
3u13r
dd2ea50a39
deps: bump go version (#1760) 2023-05-11 14:14:15 +02:00
Moritz Eckert
fd83f3439e
docs: update state of clouds (#1732)
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-05-10 10:04:20 +02:00
renovate[bot]
81f79d943a
deps: update Terraform azurerm to v3.55.0 (#1668)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-08 13:43:18 +02:00
Daniel Weiße
d9bec20c78
Guard measurement removal behind config version check (#1739)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-05 16:43:50 +02:00
renovate[bot]
f7240b570b
deps: update dependency bazel to v6.1.2 (#1749)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 16:42:33 +02:00
renovate[bot]
0db7f68093
deps: update Azure SDK (#1747)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 15:12:25 +02:00
renovate[bot]
a8101c8c64
deps: update GitHub action dependencies (#1745)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 14:42:20 +02:00
renovate[bot]
5de413d7b1
deps: update distroless_static Docker digest to 7198a35 (#1742)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 14:39:15 +02:00
renovate[bot]
cad859153b
deps: update fedora:37 Docker digest to 67870e4 (#1743)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 14:38:36 +02:00
renovate[bot]
f3e14f2b42
deps: update ubuntu:22.04 Docker digest to ca5534a (#1744)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 14:38:11 +02:00
renovate[bot]
a60e22d6d3
deps: update golang Docker tag to v1.20.4 (#1746)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-05-05 14:37:15 +02:00
Malte Poll
7d8e36a853 rfc: define measurements v2
The old measurements.json (v1) was contain one set of measurements and had a path scoped for every CSP.
The new version is less structured, allowing for future extensions.
2023-05-05 14:36:45 +02:00
Malte Poll
45e67d9d22 rfc: define image info v2
The version v1 of the image/info.json file is not capable to encode multiple regions and
attestation variants for a given csp.
This is why a v2 is needed with a more extensible structure.
2023-05-05 14:36:45 +02:00
renovate[bot]
a1fddd312c
deps: update K8s constrained GCP versions (#1565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-05 14:30:48 +02:00
renovate[bot]
5301534aee
deps: update K8s constrained Azure versions (#1687)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-05-05 13:58:50 +02:00
Paul Meyer
30cd024076
deps: add Kubernetes v1.27, remove Kubernetes v1.24 (#1669)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 13:22:53 +02:00
Paul Meyer
b48866a756
ci: fix measurement generation on scheduled build (#1741)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-05 13:13:51 +02:00
Malte Poll
6694eabebd cli: allow any well formatted zone in iam create 2023-05-05 12:06:44 +02:00
Malte Poll
653bf3621d image: replicate AWS images to eu-west-1 and eu-west-3 2023-05-05 12:06:44 +02:00
Malte Poll
ad8a3eec4a versionsapi: increase cloudfront cache invalidation timeout 2023-05-05 12:06:44 +02:00
Malte Poll
a2d701f421 image: remove upload scripts 2023-05-05 12:06:44 +02:00
Malte Poll
2efa3083dc ci: use native go code for os image upload 2023-05-05 12:06:44 +02:00
Malte Poll
ee91d8b1cc image: implement idempotent upload of os images 2023-05-05 12:06:44 +02:00
Thomas Tendyck
17c45bc881 Update release.md 2023-05-05 10:57:32 +02:00
Daniel Weiße
c3b13178aa
docs: add short explanation on attestation config options (#1654)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-04 15:00:06 +02:00
Otto Bittner
1f49c815b2
ci: update measurement overwrite for config v3 (#1731) 2023-05-04 11:32:52 +02:00
Paul Meyer
b76583e4a0
ci: fix e2e miniconstellation abort condition (#1728)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-04 08:16:31 +02:00
Malte Poll
56635c3993 cli: deploy yawol as OpenStack loadbalancer 2023-05-03 21:45:59 +02:00
Malte Poll
0ebe6e669d cli: add yawol helm charts 2023-05-03 21:45:59 +02:00
Paul Meyer
ab74958b4a
ci: fix e2e release abort condition (#1726)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-03 18:18:16 +02:00
Otto Bittner
d5fa614df1
cli: remove ambiguity in path for CR backups (#1719)
During upgrade all custom resources are backed up to files on the
local file system. Since old versions are also backed up, we need to
reflect the version in the name.
2023-05-03 14:36:57 +02:00
Malte Poll
d2cbf3dc83
ci: skip e2e tests if caller was not successful (#1714) 2023-05-03 11:40:09 +02:00
Daniel Weiße
d7a2ddd939
config: add separate option for handling attestation parameters (#1623)
* Add attestation options to config

* Add join-config migration path for clusters with old measurement format

* Always create MAA provider for Azure SNP clusters

* Remove confidential VM option from provider in favor of attestation options

* cli: add config migrate command to handle config migration (#1678)

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-05-03 11:11:53 +02:00
Malte Poll
6027b066e5
bazel: don't exit early in workspace_status.sh (#1713) 2023-05-02 16:57:08 +02:00
renovate[bot]
e9103cad0a
deps: update Constellation containers to v2.7.0-pre.0.20230405123345-6bf3c63115a5 (#1563)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-05-02 15:04:31 +02:00
Malte Poll
cb6cc8df22
image: fix pcr 12 calculation (#1706)
Kernel cmdline embedded in UKIs had no null terminator before. With newer versions of mkosi, it is already null-terminated so we shouldn't null terminate it twice.
2023-05-02 12:01:30 +02:00
Otto Bittner
1180b376fa ci: only add tf-log flag if the binary supports it
We sometimes run older CLI versions in the CI. Those versions
may not support the flag.
2023-05-02 11:08:40 +02:00
Otto Bittner
3770cada91 cli: create namespaced folders for upgrade backups
Resource names are only unique per kind+ns. Without this patch it
might happen that there are two resources with the same name
in different namespaces. Upgrade might fail in that case.
2023-05-02 11:08:40 +02:00
Paul Meyer
7ab23c28b8 Revert "misc: replace sha256sum with shasum -a 256 (#1681)"
This reverts commit ec1d5e9fb51a2075eda7c24832c0fa76da85c34e.

While the change enabled shasum calculation on mac, it broke it
on some Linux distros.
2023-05-02 11:07:05 +02:00
Paul Meyer
7d55e67f5c tools: use either sha256sum or shasum
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-05-02 11:07:05 +02:00
Otto Bittner
5deccc3d01 ci: push images in e2e-upgrade 2023-04-28 15:48:12 +02:00
Otto Bittner
caa0732955 hack: fix v-prefixing in pseudo-version tool
pre-release versions and release versions behaved differently.
This lead to a duplicate v prefix in the cli's version.
2023-04-28 15:48:12 +02:00
Otto Bittner
e72fb954f1 ci: e2e-upgrade, case-insensitive string compare 2023-04-28 15:48:12 +02:00
Otto Bittner
481eeeaf3e ci: add simulatedTargetVersion to e2e-upgrade
This allows us to build a CLI that reports the given version during
an upgrade test. With this we can test patch upgrades.
2023-04-28 15:48:12 +02:00
Otto Bittner
4a0d531821 upgrade: fix 2.6 -> 2.7 migration for 2.7.1 patch
Also correctly set microservice version from config.
Previously the key was ignored and microservices were always
tried for an upgrade.
2023-04-28 15:48:12 +02:00
Paul Meyer
1d24036f21
ci: fix os image build schedule (#1703)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-28 12:57:11 +02:00
Malte Poll
635b98a34f
ci: rename all usages of bazel push target from //:push to //bazel/release:push (#1701) 2023-04-28 09:26:15 +02:00
edgelessci
1ea060e873
image: update measurements and image version (#1700)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-28 08:02:19 +02:00
renovate[bot]
84c7550f37
deps: update Kubernetes versions (#1688)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 18:04:01 +02:00
renovate[bot]
4cfa7a0306
deps: update golang.org/x/exp digest to 47ecfdc (#1690)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 17:51:46 +02:00
renovate[bot]
e09243bfb3
deps: update fedora:37 Docker digest to e734322 (#1689)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 17:51:14 +02:00
renovate[bot]
fa4c6201b0
deps: update golang:1.20.3 Docker digest to 403f486 (#1691)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 17:50:46 +02:00
renovate[bot]
686bb4eb0a
deps: update ubuntu:20.04 Docker digest to db8bf6f (#1692)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 17:50:20 +02:00
Moritz Sanft
261fe611a9
ci: add Terraform logging (#1665)
* enable Terraform logging

* change to debug level

* rename artifact

* add name suffix

* remove blank line
2023-04-27 14:03:49 +02:00
Leonard Cohnen
1825c11790 docs: remove second build documentation 2023-04-27 13:04:40 +02:00
Leonard Cohnen
f3dc37293f docs: align container_prefix suggestion 2023-04-27 13:04:40 +02:00
3u13r
074844d0cb
terraform: fix aws worker node permission (#1683) 2023-04-27 11:52:32 +02:00
3u13r
1bdf410b52
bazel: allow custom container_prefix (#1693)
* build: allow custom container registry

* build: fix .bazeloverwriterc import
2023-04-27 11:52:02 +02:00
Paul Meyer
12216ea997
ci: prevent google auth warnings when reauthenticating (#1697)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 10:55:57 +02:00
Malte Poll
0c206e62d0
deps: rename bazel-zig-cc to hermetic_cc_toolchain (#1695) 2023-04-27 10:27:43 +02:00
Paul Meyer
bf051174f6 ci: update measurements and image version
on scheduled build

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 10:20:27 +02:00
Paul Meyer
82d0475e2a ci: don't pick from release to main
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-27 10:20:27 +02:00
Malte Poll
c11a3f4460
cli: configurable state disk type on OpenStack (#1686) 2023-04-27 09:08:43 +02:00
Malte Poll
ec1d5e9fb5
misc: replace sha256sum with shasum -a 256 (#1681) 2023-04-26 13:40:18 +02:00
Moritz Sanft
53d8a2d67e
bazel: fix MacOS builds (#1680)
* allow arm64 arch

* switch to shasum command
2023-04-26 08:54:20 +02:00
Malte Poll
84dd25600f
image: upgrade mkosi to support repart (#1684) 2023-04-25 18:22:40 +02:00
Malte Poll
ded8abeacc
ci: limit prefix length of AWS IAM resources (#1674) 2023-04-25 13:29:07 +02:00
Otto Bittner
c962e1745f
ci: add missing permissions for e2e-upgrade job (#1679)
Missed a spot..
2023-04-24 13:49:02 +02:00
Otto Bittner
e6d5c2f116 ci: remove obsolete env variables
these variables influence the azure cli auth behavior.
we now use OIDC as login mechanism.
2023-04-24 12:38:08 +02:00
Otto Bittner
840eb401c6 ci: add missing permissions to workflows
+ packages: write
+ checks: write
2023-04-24 12:38:08 +02:00
Malte Poll
dc5e6f30a9
ci: login to container registry before pushing containers (#1676) 2023-04-21 11:05:08 +02:00
Daniel Weiße
1ebc553365
kubernetes: update CSI driver versions to v1.2.0 (#1657)
* Update CSI charts

* Update CSI tests

---------

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-04-21 11:03:35 +02:00
Moritz Sanft
478b6ddb72
add terraform debug docs (#1627) 2023-04-21 08:43:27 +02:00
Moritz Sanft
3031d395a9
cli: force-delete Azure resource group (#1667)
* force-delete Azure resource group

* were not -> weren't

* fix typo
2023-04-19 08:30:11 +02:00
Malte Poll
5145f806ea bazel: remove apko and Dockerfile where Bazel is used to build container images 2023-04-18 15:35:15 +02:00
Malte Poll
19ff132ee8 ci: upload container images when running e2e tests 2023-04-18 15:35:15 +02:00
Malte Poll
086c17fa23 deps: update bazeldnf and rules_oci 2023-04-18 15:35:15 +02:00
Malte Poll
daf18052f9 bazel: rules to handle container images 2023-04-18 15:35:15 +02:00
Malte Poll
9dfad32e33 cli: use Bazel container images 2023-04-18 15:35:15 +02:00
Malte Poll
bd889bd6a7 bazel: convert all container images to Bazel 2023-04-18 15:35:15 +02:00
Malte Poll
1f81763a27 cli: convert libvirt container image to Bazel 2023-04-18 15:35:15 +02:00
Malte Poll
498e8241ff bazel: only use crane for push / pull 2023-04-18 15:35:15 +02:00
Malte Poll
6616b91b7f upgrade rpms 2023-04-18 15:35:15 +02:00
Malte Poll
9d25372e10 hack: add oci-pin tool
This tool can generate Go source files and lockfiles for container images.
2023-04-18 15:35:15 +02:00
Paul Meyer
4b9bce9bb7
ci: fix notification trigger (#1673)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-18 14:50:36 +02:00
3u13r
bf0d169cf6
operator: isolate integration tests (#1651) 2023-04-18 14:20:41 +02:00
Paul Meyer
e335421dd2
ci: trigger notify only in scheduled workflows (#1671)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 17:30:56 +02:00
3u13r
3cb6ab04f1
ci: don't set IAM env for Azure (#1670) 2023-04-17 16:47:12 +02:00
Paul Meyer
c1d3b38a5f ci: replace release[bot] with edgelessci
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:08:42 +02:00
Paul Meyer
7a1af4937c ci: remove outdated iam code
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:08:42 +02:00
Paul Meyer
b80d1576f3 ci: use include list to define e2e matrix
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:08:42 +02:00
Paul Meyer
4020e7840a ci: always use tee -a instead of redirecting
into GITHUB_OUTPUT

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:08:42 +02:00
Paul Meyer
3ef7a60c21 bazel: reduce size of uploaded build event stream
by eliminating duplicate file references

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:06:21 +02:00
Paul Meyer
7fefa671ef bazel: add container builder script
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:06:21 +02:00
Paul Meyer
caedb1c081 bazel: add builder container
Co-authored-by: Malte Poll <mp@edgeless.systems>
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-17 12:06:21 +02:00
Malte Poll
c3c068b65e bazel: allow running devbuild in containers with other filesystem layout 2023-04-17 12:06:21 +02:00
3u13r
14d26e1af4
terraform: use nat gateway on azure (#1655)
* terraform: use nat gateway on azure

* docs: add new azure permission
2023-04-17 11:00:35 +02:00
Paul Meyer
0b3190ea8b
ci: fix naming issues (#1662)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-15 19:24:48 +02:00
Paul Meyer
860d72a083
ci: reduce number of steps with continue-on-error (#1593)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 18:50:58 +02:00
Paul Meyer
632b24e7cd
ci: fix version publishing on release (#1658)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 18:04:03 +02:00
Moritz Sanft
1d0ee796e8
cli: add Terraform log support (#1620)
* add Terraform logging

* add TF logging to CLI

* fix path

* only create file if logging is enabled

* update bazel files

* register persistent flags manually

* clidocgen

* move logging code to separate file

* reword yes flag parsing error

* update bazel buildfile

* factor out log level setting
2023-04-14 14:15:07 +02:00
renovate[bot]
ca1400819d
deps: update github.com/edgelesssys/constellation/v2/3rdparty/node-maintenance-operator digest to d2967ff (#1485)
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 13:21:58 +02:00
Paul Meyer
1cc0ab2614
ci: improve e2e failure reporting and checklist (#1656)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 13:14:25 +02:00
Paul Meyer
76979136de ci: refactor artifact and resource naming
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 13:12:39 +02:00
Paul Meyer
1f82b4d266 ci: reduce continue-on-error usage in e2e upgrade
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 13:12:39 +02:00
Paul Meyer
d24ebd660e ci: fix order in e2e upgrade
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 13:12:39 +02:00
Paul Meyer
677ed052a4 ci: use iam created Azure resource group in e2e upgrade
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-14 13:12:39 +02:00
Otto Bittner
d2967fff6b
cli: fix misleading error while applying kubernetes-only upgrade (#1630)
* The check would previously fail if e.g. `apply` did not upgrade the
image, but a new image was specified in the config. This could
happen if the specified image was too new, but a valid Kuberentes
upgrade was specified.
* ci: fix variable expansion in e2e-upgrade call
* e2e: do not verify measurement signature
2023-04-13 15:58:37 +02:00
Malte Poll
ea86520f0b
bazel: update pseudo-version tool hashes (#1645) 2023-04-13 12:11:51 +02:00
Malte Poll
eb11e9ac8a
bazel: download pseudo-version tool instead of "go build" (#1629)
Required for bootstrapping bazel stamping since we cannot use "bazel build" during the workspace_status command.
Adds a small script that builds the pseudo-version tool in bazel (without stamping) and uploads it to the mirror.
On the first bazel build with stamping, the pseudo-version tool is downloaded.
2023-04-12 17:41:13 +02:00
renovate[bot]
1ae39703d1
deps: update module golang.org/x/tools to v0.8.0 (#1642)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 17:31:48 +02:00
renovate[bot]
326460c037
deps: update module golang.org/x/mod to v0.10.0 (#1640)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 16:48:50 +02:00
renovate[bot]
44dc127036
deps: update module github.com/spf13/cobra to v1.7.0 (#1638)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 16:46:16 +02:00
renovate[bot]
fdaef3da0c
deps: update mvdan/gofumpt to v0.5.0 (#1643)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 16:12:57 +02:00
Paul Meyer
dea41bd1ed
ci: refactor e2e test failure notifications (#1625)
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-04-12 16:06:26 +02:00
renovate[bot]
ee7ca3428a
deps: update module golang.org/x/crypto to v0.8.0 (#1639)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 15:41:01 +02:00
renovate[bot]
13e687f60d
deps: update rhysd/actionlint to v1.6.24 (#1637)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 15:40:01 +02:00
renovate[bot]
b8c9c4f251
deps: update golang.org/x/vuln digest to aaaefcd (#1635)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 15:38:37 +02:00
renovate[bot]
60bacaa587
deps: update golang:1.20.3 Docker digest to 89924bd (#1636)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-12 14:35:57 +02:00
Moritz Sanft
6ba294e175
ci: separate e2e permissions (#1555)
* split e2e test iam create / create perms

* remove global Azure credentials

* remove unnecessary azure actions

* use UUID

* fix e2e upgrade test

* rename create inputs

* remove continue-on-error for resource deletion

* de-exclude verify test

* fix exclude

* fix release e2e test

---------

Co-authored-by: Nils Hanke <nils.hanke@outlook.com>
2023-04-12 13:24:13 +02:00
Malte Poll
52a1bb0a19
ci: prevent accidental GOOS and GOARCH confusion in host go toolchain (#1632) 2023-04-12 11:05:05 +02:00
Moritz Eckert
af9e03f66b docs: update versioned benchmarks 2023-04-11 14:28:21 +02:00
Moritz Eckert
0b66119a41 docs: group perf graphics by csp 2023-04-11 14:28:21 +02:00
Moritz Eckert
db32251daa docs: update benchmarks with v2.6.0
Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
2023-04-11 14:28:21 +02:00
Moritz Eckert
a1f5e0e53d ci: Add tooling to create benchmark figures 2023-04-11 14:28:21 +02:00
Leonard Cohnen
2755ba9650 chore: bump version.txt 2023-04-06 18:20:50 +02:00
Leonard Cohnen
f49126bce4 docs: update release worklow 2023-04-06 18:20:50 +02:00
Daniel Weiße
ec01c57661
internal: use config to create attestation validators (#1561)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
2023-04-06 17:00:56 +02:00
Malte Poll
2b962598bf
deps: update go to 1.20.3 (#1622) 2023-04-06 16:36:07 +02:00
renovate[bot]
aa3b49aced
deps: update module github.com/hashicorp/terraform-exec to v0.18.1 (#1615)
* deps: update module github.com/hashicorp/terraform-exec to v0.18.1

* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-04-06 10:45:25 +02:00
renovate[bot]
d95a764b65
deps: update golangci/golangci-lint to v1.52.2 (#1598)
* deps: update golangci/golangci-lint to v1.52.2
* deps: tidy all modules
* fix linting issues

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
Co-authored-by: Malte Poll <mp@edgeless.systems>
2023-04-05 18:40:35 +02:00
renovate[bot]
1c03b066a6
deps: update bufbuild/buf to v1.17.0 (#1597)
* deps: update bufbuild/buf to v1.17.0
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-04-05 18:09:28 +02:00
Malte Poll
0ece41c146
bazel-deps-mirror: upgrade command (#1617)
* bazel-deps-mirror: upgrade command

This command can be used to upgrade a dependency.
Users are supposed to replace any upstream URLs and run the upgrade command.
It replaces the expected hash and uploads the new dep to the mirror.
2023-04-05 17:32:51 +02:00
Malte Poll
69de06dd1f
image: OpenStack vTPM (#1616)
* cli: allow vpc traffic between nodes on OpenStack
* image: enable vTPM on OpenStack
* cli: add create tests for OpenStack
2023-04-05 16:49:03 +02:00
renovate[bot]
509b3d5d58
deps: update module github.com/docker/docker to v20.10.24+incompatible [SECURITY] (#1614)
* deps: update module github.com/docker/docker to v20.10.24+incompatible [SECURITY]
* deps: tidy all modules

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: edgelessci <edgelessci@users.noreply.github.com>
2023-04-05 12:14:19 +02:00
renovate[bot]
a2ae53d229
deps: update dependency kubernetes-sigs/cri-tools to v1.26.1 (#1600)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-05 11:37:15 +02:00
Paul Meyer
de5d8d796b
Update release.md (#1613) 2023-04-05 11:02:54 +02:00
edgelessci
06bbdda9dc
docs: add release v2.7.0 (#1592)
Co-authored-by: katexochen <katexochen@users.noreply.github.com>
2023-04-05 10:33:16 +02:00
4004 changed files with 327186 additions and 99861 deletions

2
.bazelignore Normal file
View File

@ -0,0 +1,2 @@
.direnv
build

View File

@ -1,54 +1,56 @@
# share bazel cache between checkouts of the same project
# and keep old build caches around for longer
build --disk_cache=~/.cache/shared_bazel_action_cache
build --repository_cache=~/.cache/shared_bazel_repository_cache
# better caching / reproducibility
build --incompatible_strict_action_env=true
build --experimental_output_directory_naming_scheme=diff_against_baseline
# disable automatic toolchain detection for C/C++
build --incompatible_enable_cc_toolchain_resolution
build --action_env BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
# Import bazelrc presets
import %workspace%/bazel/bazelrc/bazel7.bazelrc
import %workspace%/bazel/bazelrc/convenience.bazelrc
import %workspace%/bazel/bazelrc/correctness.bazelrc
import %workspace%/bazel/bazelrc/debug.bazelrc
import %workspace%/bazel/bazelrc/performance.bazelrc
import %workspace%/bazel/bazelrc/cc.bazelrc
# inject version information into binaries
build --stamp --workspace_status_command=tools/workspace_status.sh
common --stamp --workspace_status_command=tools/workspace_status.sh
# strip binaries for better reproducibility
build --strip=always
common --strip=always
# set build mode to opt by default (better reproducibility and performance)
build --compilation_mode=opt
common --compilation_mode=opt
# use pure go implementation of netdns
build --define=gotags=netgo
common --define=gotags=netgo
# enable tpm simulator for tests
test --//bazel/settings:tpm_simulator
# disable test caching (rerun all test cases even if they passed before)
test --cache_test_results=no
# set registry flag alias
build --flag_alias=container_prefix=//bazel/settings:container_prefix
# bazel config for debug builds
build:debug --compilation_mode=dbg --strip=never
# set cli edition flag alias
build --flag_alias=cli_edition=//bazel/settings:cli_edition
# disable integration tests by default
test --test_tag_filters=-integration
# enable all tests (including integration)
test:integration --test_tag_filters= --@io_bazel_rules_go//go/config:tags=integration
# enable only integration tests
test:integration-only --test_tag_filters=+integration --@io_bazel_rules_go//go/config:tags=integration,enterprise
# bazel configs to explicitly target a platform
build:host --platforms @local_config_platform//:host
build:linux_amd64 --platforms @zig_sdk//libc_aware/platform:linux_amd64_gnu.2.34
build:linux_arm64 --platforms @zig_sdk//libc_aware/platform:linux_arm64_gnu.2.34
build:linux_amd64_static --platforms @zig_sdk//libc_aware/platform:linux_amd64_musl
build:linux_arm64_static --platforms @zig_sdk//libc_aware/platform:linux_arm64_musl
common:host --platforms @local_config_platform//:host
common:linux_amd64 --platforms @zig_sdk//libc_aware/platform:linux_amd64_gnu.2.23
common:linux_arm64 --platforms @zig_sdk//libc_aware/platform:linux_arm64_gnu.2.23
common:linux_amd64_static --platforms @zig_sdk//libc_aware/platform:linux_amd64_musl
common:linux_arm64_static --platforms @zig_sdk//libc_aware/platform:linux_arm64_musl
# bazel configs to explicitly target NixOS
common --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
common --crosstool_top=@local_config_cc//:toolchain
# bazel config to explicitly disable stamping (hide version information at build time)
build:nostamp --nostamp --workspace_status_command=
common:nostamp --nostamp --workspace_status_command=
# bazel config to use remote cache
build:remote_cache --bes_results_url=https://app.buildbuddy.io/invocation/
build:remote_cache --bes_backend=grpcs://remote.buildbuddy.io
build:remote_cache --remote_cache=grpcs://remote.buildbuddy.io
build:remote_cache --remote_timeout=3600
build:remote_cache --experimental_remote_build_event_upload=minimal
build:remote_cache --experimental_remote_cache_compression
build:remote_cache_readonly --noremote_upload_local_results # Uploads logs & artifacts without writing to cache
common:build_barn_rbe_ubuntu_22_04 --remote_timeout=3600
common:build_barn_rbe_ubuntu_22_04 --remote_executor=grpc://frontend.buildbarn:8980 # this maps to the kubernetes internal buildbarn/frontend service
common:build_barn_rbe_ubuntu_22_04 --extra_execution_platforms=//bazel/rbe:ubuntu-act-22-04-platform
common:build_barn_rbe_ubuntu_22_04 --shell_executable=/bin/bash
try-import .bazeloverwriterc
try-import %workspace%/.bazeloverwriterc

View File

@ -1 +1 @@
6.1.0
7.4.1

1
.envrc Normal file
View File

@ -0,0 +1 @@
use flake

View File

@ -1,33 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
### Issue description
<!-- A clear and concise description of what the issue is -->
### To reproduce
Steps to reproduce the behavior:
1.
2.
3.
### Environment
- `constellation version`:
- `constellation-conf.yaml`
- (make sure to remove sensitive information, e.g., `yq e 'del(.provider.*.project)' constellation-conf.yaml`)
- VM type used to run Constellation.
### Expected behavior
<!-- A clear and concise description of what you expected to happen -->
### Additional info / screenshot
<!-- Any additional information or context -->

25
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Bug report
description: File a bug report to help us improve
labels: ["bug", "needs-triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
attributes:
label: Issue description
description: A concise description of what you're experiencing.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce the behavior
- type: textarea
attributes:
label: Version
description: Output of `constellation version`
- type: textarea
attributes:
label: Constellation Config
description: Make sure to remove sensitive information, e.g., `yq e 'del(.provider.*.project)' constellation-conf.yaml`.

View File

@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Confidential Computing Discord
url: https://discord.com/invite/rH8QTH56JN
about: Join the Confidential Computing community!
- name: Having trouble or questions?
url: https://github.com/edgelesssys/constellation/discussions/new?category=q-a
about: Open a discussion instead! We will be happy to help you.

View File

@ -1,17 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
### Use case
<!-- A clear and concise description of what the problem is. -->
### Describe your solution
<!-- A clear and concise description of what you want to happen. -->
### Additional context
<!-- Add any other context or screenshots about the feature request here. -->

View File

@ -0,0 +1,18 @@
name: Feature request
description: Suggest an idea for this project
body:
- type: textarea
attributes:
label: Use case
description: A concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe your solution
description: In case you have an idea how to implement this feature.
- type: checkboxes
attributes:
label: Would you be willing to implement this feature?
options:
- label: Yes, I could contribute this feature.

View File

@ -1,14 +0,0 @@
---
name: Question
about: Get help or more information on a topic
title: ''
labels: question
assignees: ''
---
<!--
Ask your question here.
Make sure you've checked the docs at https://docs.edgeless.systems/constellation
You can also search within the existing issues at https://github.com/edgelesssys/constellation/issues
-->

View File

@ -1,3 +1,10 @@
self-hosted-runner:
# Labels of self-hosted runner in array of string
labels: [azure-cvm]
labels:
[
azure-cvm,
arc-runner-set,
bazel-cached,
bazel-nocache,
ubuntu-latest-8-cores,
]

View File

@ -0,0 +1,17 @@
name: Delete artifact
description: Delete an artifact by name
inputs:
name:
description: 'The name of the artifact.'
required: true
workflowID:
description: 'The ID of the workflow.'
required: true
runs:
using: "composite"
steps:
- name: Delete artifact
shell: bash
run: ./.github/actions/artifact_delete/delete_artifact.sh ${{ inputs.workflowID }} ${{ inputs.name }}

View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
# get_artifact_id retrieves the artifact id of
# an artifact that was generated by a workflow.
# $1 should be the workflow run id. $2 should be the artifact name.
function get_artifact_id {
artifact_id="$(gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
--paginate \
"/repos/edgelesssys/constellation/actions/runs/$1/artifacts" --jq ".artifacts |= map(select(.name==\"$2\")) | .artifacts[0].id" || exit 1)"
echo "$artifact_id" | tr -d "\n"
}
# delete_artifact_by_id deletes an artifact by its artifact id.
# $1 should be the id of the artifact.
function delete_artifact_by_id {
gh api \
--method DELETE \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/edgelesssys/constellation/actions/artifacts/$1" || exit 1
}
workflow_id="$1"
artifact_name="$2"
if [[ -z $workflow_id ]] || [[ -z $artifact_name ]]; then
echo "Usage: delete_artifact.sh <WORKFLOW_ID> <ARTIFACT_NAME>"
exit 1
fi
echo "[*] retrieving artifact ID"
artifact_id="$(get_artifact_id "$workflow_id" "$artifact_name")"
echo "[*] deleting artifact with ID $artifact_id"
delete_artifact_by_id "$artifact_id"

View File

@ -0,0 +1,40 @@
name: Download artifact
description: Download and decrypt an artifact.
inputs:
name:
description: 'The name of the artifact.'
required: true
path:
description: 'Download to a specified path.'
required: false
default: ./
encryptionSecret:
description: 'The secret to use for decrypting the artifact.'
required: true
runs:
using: "composite"
steps:
- name: Install 7zip
uses: ./.github/actions/setup_bazel_nix
with:
nixTools: |
_7zz
- name: Create temporary directory
id: tempdir
shell: bash
run: echo "directory=$(mktemp -d)" >> "$GITHUB_OUTPUT"
- name: Download the artifact
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: ${{ inputs.name }}
path: ${{ steps.tempdir.outputs.directory }}
- name: Decrypt and unzip archive
shell: bash
run: |
mkdir -p ${{ inputs.path }}
7zz x -p'${{ inputs.encryptionSecret }}' -bso0 -bsp0 -t7z -o"${{ inputs.path }}" ${{ steps.tempdir.outputs.directory }}/archive.7z

View File

@ -0,0 +1,78 @@
name: Upload artifact
description: Upload an encrypted zip archive as a github artifact.
inputs:
path:
description: 'The path(s) that should be uploaded. Paths may contain globs. Only the final component of a path is uploaded.'
required: true
name:
description: 'The name of the artifact.'
required: true
retention-days:
description: 'How long the artifact should be retained for.'
default: 60
encryptionSecret:
description: 'The secret to use for encrypting the files.'
required: true
overwrite:
description: 'Overwrite an artifact with the same name.'
default: false
required: false
runs:
using: "composite"
steps:
- name: Install 7zip
uses: ./.github/actions/setup_bazel_nix
with:
nixTools: |
_7zz
- name: Create temporary directory
id: tempdir
shell: bash
run: echo "directory=$(mktemp -d)" >> "$GITHUB_OUTPUT"
- name: Create archive
shell: bash
run: |
set -euo pipefail
shopt -s extglob
paths="${{ inputs.path }}"
paths=${paths%$'\n'} # Remove trailing newline
# Check if any file matches the given pattern(s).
something_exists=false
for pattern in ${paths}
do
if compgen -G "${pattern}" > /dev/null; then
something_exists=true
fi
done
# Create an archive if files exist.
# Don't create an archive file if no files are found
# and warn.
if ! ${something_exists}
then
echo "::warning:: No files/directories found with the provided path(s): ${paths}. No artifact will be uploaded."
exit 0
fi
for target in ${paths}
do
if compgen -G "${target}" > /dev/null
then
pushd "$(dirname "${target}")"
7zz a -p'${{ inputs.encryptionSecret }}' -bso0 -bsp0 -t7z -ms=on -mhe=on "${{ steps.tempdir.outputs.directory }}/archive.7z" "$(basename "${target}")"
popd
fi
done
- name: Upload archive as artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.name }}
path: ${{ steps.tempdir.outputs.directory }}/archive.7z
retention-days: ${{ inputs.retention-days }}
if-no-files-found: ignore
overwrite: ${{ inputs.overwrite }}

View File

@ -1,12 +0,0 @@
name: Azure SNP Reporter
description: "Get SNP MAA statement from Azure."
inputs:
outputPath:
description: "Path to put signed JWT into."
required: true
runs:
using: "composite" # some azure SNP-enabled machine.
steps:
- name: Fetch report
shell: bash
run: docker run --rm --privileged -v/sys/kernel/security:/sys/kernel/security ghcr.io/edgelesssys/constellation/azure-snp-reporter | tail -n 1 > ${{ inputs.outputPath }}

View File

@ -1,111 +0,0 @@
name: Build container base images using apko
description: Build one or multiple apko base images based on supplied .yaml files
inputs:
apkoConfig:
description: "Path to the apko .yaml config file. If left empty, all images will be built."
required: false
apkoArch:
description: "Use this image architecture"
required: false
default: amd64
containerTags:
description: "Tags for the resulting container image, space separated"
required: true
registry:
description: "Container registry to use"
default: "ghcr.io"
required: true
githubToken:
description: "GitHub authorization token"
required: true
cosignPublicKey:
description: "Cosign public key"
required: false
default: ""
cosignPrivateKey:
description: "Cosign private key"
required: false
default: ""
cosignPassword:
description: "Password for Cosign private key"
required: false
default: ""
# Linux runner only (docker required)
runs:
using: composite
steps:
- name: Install deps
shell: bash
run: |
echo "::group::Install dependencies"
sudo apt-get update
sudo apt-get install -y zip
echo "::endgroup::"
- name: Log in to the Container registry
id: docker-login
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # tag=v2.1.0
with:
registry: ${{ inputs.registry }}
username: ${{ github.actor }}
password: ${{ inputs.githubToken }}
- name: Install Cosign
if: |
inputs.cosignPublicKey != '' &&
inputs.cosignPrivateKey != '' &&
inputs.cosignPassword != ''
uses: sigstore/cosign-installer@9becc617647dfa20ae7b1151972e9b3a2c338a2b # v2.8.1
- name: Download apk repository
shell: bash
env:
DOCKER_BUILDKIT: "1"
run: |
docker build -o ./apko -f hack/package-hasher/Containerfile.apk.downloader ./apko
- name: Build apko images and sign them
shell: bash
working-directory: apko
env:
COSIGN_EXPERIMENTAL: "true"
COSIGN_PUBLIC_KEY: ${{ inputs.cosignPublicKey }}
COSIGN_PRIVATE_KEY: ${{ inputs.cosignPrivateKey }}
COSIGN_PASSWORD: ${{ inputs.cosignPassword }}
APKO_CONFIG: ${{ inputs.apkoConfig }}
APKO_ARCH: ${{ inputs.apkoArch }}
CONTAINER_TAGS: ${{ inputs.containerTags }}
REGISTRY: ${{ inputs.registry }}
run: ../.github/actions/build_apko/build_and_sign.sh
- name: Sign sboms
if: |
inputs.cosignPublicKey != '' &&
inputs.cosignPrivateKey != '' &&
inputs.cosignPassword != ''
shell: bash
working-directory: apko
env:
COSIGN_PUBLIC_KEY: ${{ inputs.cosignPublicKey }}
COSIGN_PRIVATE_KEY: ${{ inputs.cosignPrivateKey }}
COSIGN_PASSWORD: ${{ inputs.cosignPassword }}
run: |
for dir in sboms/*; do
for file in $dir/*; do
cosign sign-blob \
--key env://COSIGN_PRIVATE_KEY \
$file \
-y \
> $file.sig
done
done
zip -r sboms.zip sboms
- name: Upload SBOMs
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: sboms
path: apko/sboms.zip

View File

@ -1,68 +0,0 @@
#!/usr/bin/env bash
set -exuo pipefail
shopt -s inherit_errexit
# buildImage <apko_config_path>
buildImage() {
local imageConfig=$1
echo "Building image for ${imageConfig}"
local imageName
imageName=$(basename "${imageConfig}" | cut -d. -f1)
local registryPath
registryPath="${REGISTRY}/edgelesssys/apko-${imageName}"
local outTar
outTar="${imageName}.tar"
mkdir -p "sboms/${imageName}"
# build the image
docker run \
-v "${PWD}":/work \
cgr.dev/chainguard/apko@sha256:8952f4f3ce58052b7df5e46f230f7192b42b220d3e46c8b06178cc25fd700846 \
build \
"${imageConfig}" \
--build-arch "${APKO_ARCH}" \
--sbom \
"${registryPath}" \
"${outTar}"
docker load < "${outTar}"
for tag in ${CONTAINER_TAGS}; do
tagSanitized=${tag//\//-}
docker image tag "${registryPath}" "${registryPath}:${tagSanitized}"
docker push "${registryPath}:${tagSanitized}"
imageDigest=$(docker inspect --format='{{index .RepoDigests 0}}' "${registryPath}")
# write full image as Markdown code block to step summary
cat << EOF >> "${GITHUB_STEP_SUMMARY}"
\`\`\`
${imageDigest%%@*}:${tagSanitized}@${imageDigest##*@}
\`\`\`
EOF
done
# cosign the container and push to registry
cosign sign \
--key env://COSIGN_PRIVATE_KEY \
"${imageDigest}" \
-y
# move sboms to folder
mv sbom-*.* "sboms/${imageName}/"
}
if [[ -n ${APKO_CONFIG} ]]; then
buildImage "${APKO_CONFIG}"
exit 0
fi
echo "Building all images in image"
for imageConfig in ./*.yaml; do
buildImage "${imageConfig}"
done

View File

@ -18,7 +18,7 @@ runs:
run: |
echo "::group::Build the bootstrapper"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label=//bootstrapper/cmd/bootstrapper:bootstrapper_linux_amd64
label=//bootstrapper/cmd/bootstrapper:bootstrapper_patched
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")

View File

@ -21,13 +21,13 @@ runs:
- name: Build cdbg
shell: bash
env:
GOOS: ${{ inputs.targetOS }}
GOARCH: ${{ inputs.targetArch }}
TARGET_GOOS: ${{ inputs.targetOS }}
TARGET_GOARCH: ${{ inputs.targetArch }}
OUTPUT_PATH: ${{ inputs.outputPath }}
run: |
echo "::group::Build cdbg"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label="//debugd/cmd/cdbg:cdbg_${GOOS}_${GOARCH}"
label="//debugd/cmd/cdbg:cdbg_${TARGET_GOOS}_${TARGET_GOARCH}"
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")

View File

@ -5,7 +5,7 @@ description: |
when run on v* tag.
inputs:
targetOS:
description: "Build CLI for this OS. [linux, darwin]"
description: "Build CLI for this OS. [linux, darwin, windows]"
required: true
default: "linux"
targetArch:
@ -31,6 +31,10 @@ inputs:
outputPath:
description: "Output path of the binary"
required: false
push:
description: "Push container images"
required: false
default: false
runs:
using: "composite"
steps:
@ -43,9 +47,9 @@ runs:
- name: Build CLI
shell: bash
env:
GOOS: ${{ inputs.targetOS }}
GOARCH: ${{ inputs.targetArch }}
OUTPUT_PATH: ${{ inputs.outputPath || format('./build/constellation-{0}-{1}', inputs.targetOS, inputs.targetArch) }}
TARGET_GOOS: ${{ inputs.targetOS }}
TARGET_GOARCH: ${{ inputs.targetArch }}
OUTPUT_PATH: ${{ inputs.outputPath || format('./build/constellation-{0}-{1}', inputs.targetOS, inputs.targetArch) }}${{ inputs.targetOS == 'windows' && '.exe' || '' }}
run: |
echo "::group::Build CLI"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
@ -55,22 +59,27 @@ runs:
else
cli_variant=oss
fi
label="//cli:cli_${cli_variant}_${GOOS}_${GOARCH}"
label="//cli:cli_${cli_variant}_${TARGET_GOOS}_${TARGET_GOARCH}"
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")
out_loc="$(realpath "${repository_root}/${out_rel}")"
cp "${out_loc}" "${OUTPUT_PATH}"
chmod +w "${OUTPUT_PATH}"
echo "$(dirname "${OUTPUT_PATH}")" >> $GITHUB_PATH
export PATH="$PATH:$(dirname "${OUTPUT_PATH}")"
export PATH="$PATH:$(realpath $(dirname "${OUTPUT_PATH}"))"
echo "$(realpath $(dirname "${OUTPUT_PATH}"))" >> $GITHUB_PATH
echo "::endgroup::"
# TODO: Replace with https://github.com/sigstore/sigstore-installer/tree/initial
- name: Upload container images
if: inputs.push == 'true'
shell: bash
run: bazel run //bazel/release:push
# TODO(3u13r): Replace with https://github.com/sigstore/sigstore-installer/tree/initial
# once it has the functionality
- name: Install Cosign
if: inputs.cosignPublicKey != '' && inputs.cosignPrivateKey != '' && inputs.cosignPassword != ''
uses: sigstore/cosign-installer@9becc617647dfa20ae7b1151972e9b3a2c338a2b # tag=v2.8.1
uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a # v3.8.1
- name: Install Rekor
if: inputs.cosignPublicKey != '' && inputs.cosignPrivateKey != '' && inputs.cosignPassword != ''
@ -91,11 +100,11 @@ runs:
COSIGN_PUBLIC_KEY: ${{ inputs.cosignPublicKey }}
COSIGN_PRIVATE_KEY: ${{ inputs.cosignPrivateKey }}
COSIGN_PASSWORD: ${{ inputs.cosignPassword }}
OUTPUT_PATH: ${{ github.workspace }}/${{ inputs.outputPath || format('./build/constellation-{0}-{1}', inputs.targetOS, inputs.targetArch) }}
OUTPUT_PATH: ${{ github.workspace }}/${{ inputs.outputPath || format('./build/constellation-{0}-{1}', inputs.targetOS, inputs.targetArch) }}${{ inputs.targetOS == 'windows' && '.exe' || '' }}
run: |
echo "$COSIGN_PUBLIC_KEY" > cosign.pub
# Enabling experimental mode also publishes signature to Rekor
COSIGN_EXPERIMENTAL=1 cosign sign-blob --key env://COSIGN_PRIVATE_KEY "${OUTPUT_PATH}" > "${OUTPUT_PATH}.sig"
COSIGN_EXPERIMENTAL=1 cosign sign-blob --yes --key env://COSIGN_PRIVATE_KEY "${OUTPUT_PATH}" > "${OUTPUT_PATH}.sig"
# Verify - As documentation & check
# Local Signature (input: artifact, key, signature)
cosign verify-blob --key cosign.pub --signature "${OUTPUT_PATH}.sig" "${OUTPUT_PATH}"

View File

@ -1,28 +0,0 @@
name: Build debugd
description: Build the Constellation debugd binary
inputs:
outputPath:
description: "Output path of the binary"
default: "./build/debugd"
required: true
# Linux runner only (homedir trick does not work on macOS, required for private runner)
runs:
using: "composite"
steps:
- name: Build debugd
shell: bash
env:
OUTPUT_PATH: ${{ inputs.outputPath }}
run: |
echo "::group::Build debugd"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label=//debugd/cmd/debugd:debugd_linux_amd64
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")
out_loc="$(realpath "${repository_root}/${out_rel}")"
cp "${out_loc}" "${OUTPUT_PATH}"
chmod +w "${OUTPUT_PATH}"
echo "::endgroup::"

View File

@ -1,28 +0,0 @@
name: Build disk-mapper
description: Build the Constellation disk-mapper binary
inputs:
outputPath:
description: "Output path of the binary"
default: "./build/disk-mapper"
required: true
# Linux runner only (Docker required)
runs:
using: "composite"
steps:
- name: Build the disk-mapper
shell: bash
env:
OUTPUT_PATH: ${{ inputs.outputPath }}
run: |
echo "::group::Build the disk-mapper"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label="//disk-mapper/cmd:disk-mapper_linux_amd64"
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")
out_loc="$(realpath "${repository_root}/${out_rel}")"
cp "${out_loc}" "${OUTPUT_PATH}"
chmod +w "${OUTPUT_PATH}"
echo "::endgroup::"

View File

@ -1,115 +0,0 @@
name: Build micro service using Ko
description: Build and upload a go micro service using ko
inputs:
name:
description: "Name of the micro-service"
required: true
registry:
description: "Name of the registry to use"
required: false
default: "ghcr.io"
koConfig:
description: "Path to the .ko.yaml config file"
required: false
default: ".ko.yaml"
koTarget:
description: "Go package to build with ko"
required: true
pushTag:
description: "Use this image tag"
required: true
githubToken:
description: "GitHub authorization token"
required: true
generateKoSBOM:
description: "Generate unsigned ko SBOM"
required: false
default: "false"
outputs:
container_full:
description: "Full container reference"
value: ${{ steps.build.container_full }}
container_image:
description: "Container image"
value: ${{ steps.build.outputs.container_image }}
container_tag:
description: "Container tag"
value: ${{ steps.build.container_tag }}
# Linux runner only
runs:
using: "composite"
steps:
- name: Determine pseudo version
if: ${{ !inputs.pushTag}}
id: pseudo-version
uses: ./.github/actions/pseudo_version
- name: Setup Go environment
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0
with:
go-version: "1.20.2"
cache: true
- name: Set up ko
uses: imjasonh/setup-ko@ace48d793556083a76f1e3e6068850c1f4a369aa # v0.6
with:
ko-version: "v0.12.0"
- name: Build and upload ko container image
id: build
shell: bash
env:
KO_USER: ${{ github.actor }}
KO_CONFIG_PATH: ${{ inputs.koConfig }}
KO_PASSWORD: ${{ inputs.githubToken }}
KO_DOCKER_REPO: ${{ inputs.registry }}/edgelesssys/constellation/${{ inputs.name }}
run: |
tags=""
sbom=""
if [[ "$(git branch --show-current)" == "${{ github.event.repository.default_branch }}" ]]; then
tags="latest"
else
tags="${{ github.sha }}"
fi
if [[ -n "${{ inputs.pushTag }}" ]]; then
if [[ -n "${tags}" ]]; then
tags="${tags},${{ inputs.pushTag }}"
else
tags="${{ inputs.pushTag }}"
fi
fi
if [[ -n "${{ steps.pseudo-version.outputs.version }}" ]]; then
if [[ -n "${tags}" ]]; then
tags="${tags},${{ steps.pseudo-version.outputs.version }}"
else
tags="${{ steps.pseudo-version.outputs.version }}"
fi
fi
if [[ "${{ inputs.generateKoSBOM }}" == "false" ]]; then
sbom="--sbom=none"
fi
echo "Building container image with tags: ${tags}"
container_full=$(ko build ${{ inputs.koTarget }} --bare --tags "${tags}" ${sbom})
container_image=$(echo $container_full | cut -d@ -f1)
container_sha256=$(echo $container_full | cut -d: -f2)
cat <<EOF > container_data_ko.json
{
"container_full": "${container_full}",
"container_image": "${container_image}",
"container_sha256": "${container_sha256}"
}
EOF
- name: Upload Container Data # since github censors hashes that may share data with secrets, we need to upload the data as an artifact
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: container_data_ko
path: container_data_ko.json

View File

@ -1,28 +0,0 @@
name: Build measurement-reader
description: Build the Constellation measurement-reader binary
inputs:
outputPath:
description: "Output path of the binary"
default: "./build/measurement-reader"
required: true
# Linux runner only (Docker required)
runs:
using: "composite"
steps:
- name: Build the measurement-reader
shell: bash
env:
OUTPUT_PATH: ${{ inputs.outputPath }}
run: |
echo "::group::Build the measurement-reader"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label="//measurement-reader/cmd:measurement-reader_linux_amd64"
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")
out_loc="$(realpath "${repository_root}/${out_rel}")"
cp "${out_loc}" "${OUTPUT_PATH}"
chmod +w "${OUTPUT_PATH}"
echo "::endgroup::"

View File

@ -42,7 +42,7 @@ runs:
- name: Docker metadata
id: meta
uses: docker/metadata-action@507c2f2dc502c992ad446e3d7a5dfbe311567a96 # v4.3.0
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
with:
images: |
ghcr.io/${{ github.repository }}/${{ inputs.name }}
@ -54,7 +54,7 @@ runs:
- name: Log in to the Container registry
id: docker-login
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # tag=v2.1.0
uses: ./.github/actions/container_registry_login
with:
registry: ghcr.io
username: ${{ github.actor }}
@ -62,7 +62,7 @@ runs:
- name: Build and push container image
id: build-micro-service
uses: docker/build-push-action@1104d471370f9806843c095c1db02b5a90c5f8b6 # v3.3.1
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: .
file: ${{ inputs.dockerfile }}

View File

@ -1,68 +0,0 @@
name: Build micro service (KO)
description: Build and upload a container image for a Constellation micro-service
inputs:
name:
description: "Name of the micro-service"
required: true
koConfig:
description: "Path to the .ko.yaml config file"
default: ".ko.yaml"
required: false
koTarget:
description: "Go package to build with ko"
required: true
pushTag:
description: "Use this image tag"
required: false
githubToken:
description: "GitHub authorization token"
required: true
generateKoSBOM:
description: "Generate unsigned ko SBOM"
required: false
default: "false"
cosignPublicKey:
description: "Cosign public key"
required: true
cosignPrivateKey:
description: "Cosign private key"
required: true
cosignPassword:
description: "Password for Cosign private key"
required: false
# Linux runner only
runs:
using: "composite"
steps:
- name: Build and upload container image
id: build-and-upload
uses: ./.github/actions/build_ko
with:
name: ${{ inputs.name }}
koConfig: ${{ inputs.koConfig }}
koTarget: ${{ inputs.koTarget }}
pushTag: ${{ inputs.pushTag }}
githubToken: ${{ inputs.GITHUB_TOKEN }}
- name: Download ko Container Data
id: download_container_data
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: container_data_ko
path: CONTAINER_DATA_KO
- name: Set container url to Github Env
shell: bash
run: |
container_full=$(jq -r .container_full < container_data_ko.json)
echo CONTAINER_FULL=$container_full >> $GITHUB_ENV
- name: Generate SBOM
if: inputs.cosignPublicKey != '' && inputs.cosignPrivateKey != '' && inputs.cosignPassword != '' && inputs.generateKoSBOM == 'false'
uses: ./.github/actions/container_sbom
with:
containerReference: ${{ env.CONTAINER_FULL }}
cosignPublicKey: ${{ inputs.cosignPublicKey }}
cosignPrivateKey: ${{ inputs.cosignPrivateKey }}
cosignPassword: ${{ inputs.cosignPassword }}

View File

@ -1,137 +0,0 @@
name: Build operator
description: Build and upload a container image for a Constellation operator
inputs:
name:
description: "Name of the operator"
required: true
sourceDir:
description: "Path to the operators source directory"
required: true
pushTag:
description: "Use this image tag"
required: false
githubToken:
description: "GitHub authorization token"
required: true
cosignPublicKey:
description: "Cosign public key"
required: false
cosignPrivateKey:
description: "Cosign private key"
required: false
cosignPassword:
description: "Password for Cosign private key"
required: false
# Linux runner only (Docker required)
runs:
using: "composite"
steps:
- name: Determine pseudo version
id: pseudo-version
uses: ./.github/actions/pseudo_version
- name: Install operator-sdk
uses: ./.github/actions/install_operator_sdk
with:
version: v1.22.2
- name: Log in to the Container registry
id: docker-login
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # tag=v2.1.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ inputs.githubToken }}
- name: Docker metadata
id: meta
uses: docker/metadata-action@507c2f2dc502c992ad446e3d7a5dfbe311567a96 # v4.3.0
with:
images: |
ghcr.io/${{ github.repository }}/${{ inputs.name }}
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{ inputs.pushTag }},enable=${{ '' != inputs.pushTag }}
type=raw,value=${{ steps.pseudo-version.outputs.version }},enable=${{ '' != steps.pseudo-version.outputs.version }}
type=ref,event=branch
- name: Build and push container image
id: build-image
uses: docker/build-push-action@1104d471370f9806843c095c1db02b5a90c5f8b6 # v3.3.1
with:
context: .
file: ${{ inputs.sourceDir }}/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
- name: Generate SBOM
if: inputs.cosignPublicKey != '' && inputs.cosignPrivateKey != '' && inputs.cosignPassword != ''
uses: ./.github/actions/container_sbom
with:
containerReference: ghcr.io/${{ github.repository }}/${{ inputs.name }}@${{ steps.build-image.outputs.digest }}
cosignPublicKey: ${{ inputs.cosignPublicKey }}
cosignPrivateKey: ${{ inputs.cosignPrivateKey }}
cosignPassword: ${{ inputs.cosignPassword }}
- name: Bundle for pseudo version
if: steps.pseudo-version.outputs.version != '' && inputs.pushTag == ''
shell: bash
working-directory: ${{ inputs.sourceDir }}
env:
VERSION: ${{ steps.pseudo-version.outputs.version }}
run: make bundle VERSION=${VERSION#v}
- name: Bundle for semantic version
if: inputs.pushTag != ''
shell: bash
working-directory: ${{ inputs.sourceDir }}
env:
VERSION: ${{ inputs.pushTag }}
run: make bundle VERSION=${VERSION#v}
- name: Docker metadata for bundle
id: bundle-meta
uses: docker/metadata-action@507c2f2dc502c992ad446e3d7a5dfbe311567a96 # v4.3.0
with:
images: |
ghcr.io/${{ github.repository }}/${{ inputs.name }}-bundle
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{ inputs.pushTag }},enable=${{ '' != inputs.pushTag }}
type=raw,value=${{ steps.pseudo-version.outputs.version }},enable=${{ '' != steps.pseudo-version.outputs.version }}
type=ref,event=branch
- name: Build and push bundle image
id: build-image-bundle
uses: docker/build-push-action@1104d471370f9806843c095c1db02b5a90c5f8b6 # v3.3.1
with:
context: ${{ inputs.sourceDir }}
file: ${{ inputs.sourceDir }}/bundle.Dockerfile
push: true
tags: ${{ steps.bundle-meta.outputs.tags }}
- name: Generate Bundle SBOM
if: inputs.cosignPublicKey != '' && inputs.cosignPrivateKey != '' && inputs.cosignPassword != ''
uses: ./.github/actions/container_sbom
with:
containerReference: ghcr.io/${{ github.repository }}/${{ inputs.name }}-bundle@${{ steps.build-image-bundle.outputs.digest }}
cosignPublicKey: ${{ inputs.cosignPublicKey }}
cosignPrivateKey: ${{ inputs.cosignPrivateKey }}
cosignPassword: ${{ inputs.cosignPassword }}
- name: Build and push catalog for pseudo versions
if: steps.pseudo-version.outputs.version != '' && inputs.pushTag == ''
shell: bash
working-directory: ${{ inputs.sourceDir }}
env:
VERSION: ${{ steps.pseudo-version.outputs.version }}
run: make VERSION=${VERSION#v} catalog-build catalog-push
- name: Build and push catalog for releases
if: inputs.pushTag != ''
shell: bash
working-directory: ${{ inputs.sourceDir }}
env:
VERSION: ${{ inputs.pushTag }}
run: make VERSION=${VERSION#v} catalog-build catalog-push

View File

@ -0,0 +1,43 @@
name: Build Terraform provider
description: |
Builds Terraform provider binaries cross platform.
inputs:
targetOS:
description: "Build for this OS. [linux, darwin, windows]"
required: true
default: "linux"
targetArch:
description: "Build for this architecture. [amd64, arm64]"
required: true
default: "amd64"
outputPath:
description: "Output path of the binary"
required: false
runs:
using: "composite"
steps:
# https://github.blog/2022-04-12-git-security-vulnerability-announced/
- name: Mark repository safe
shell: bash
run: |
git config --global --add safe.directory /__w/constellation/constellation
- name: Build Binaries
shell: bash
env:
TARGET_GOOS: ${{ inputs.targetOS }}
TARGET_GOARCH: ${{ inputs.targetArch }}
OUTPUT_PATH: ${{ inputs.outputPath || format('./build/terraform-provider-constellation-{0}-{1}', inputs.targetOS, inputs.targetArch) }}${{ inputs.targetOS == 'windows' && '.exe' || '' }}
run: |
echo "::group::Build Terraform provider"
mkdir -p "$(dirname "${OUTPUT_PATH}")"
label="//terraform-provider-constellation:tf_provider_${TARGET_GOOS}_${TARGET_GOARCH}"
bazel build "${label}"
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files "${label}")
out_loc="$(realpath "${repository_root}/${out_rel}")"
cp "${out_loc}" "${OUTPUT_PATH}"
chmod +w "${OUTPUT_PATH}"
export PATH="$PATH:$(realpath $(dirname "${OUTPUT_PATH}"))"
echo "$(realpath $(dirname "${OUTPUT_PATH}"))" >> $GITHUB_PATH
echo "::endgroup::"

120
.github/actions/cdbg_deploy/action.yml vendored Normal file
View File

@ -0,0 +1,120 @@
name: Cdbg deploy
description: Deploy the Constellation Bootstrapper to the cluster via the debugd.
inputs:
test:
description: "The e2e test payload."
required: true
azureClusterCreateCredentials:
description: "Azure credentials authorized to create a Constellation cluster."
required: true
azureIAMCreateCredentials:
description: "Azure credentials authorized to create an IAM configuration."
required: true
cloudProvider:
description: "The cloud provider to use."
required: true
attestationVariant:
description: "Attestation variant of the cluster."
required: false
kubernetesVersion:
description: "Kubernetes version to create the cluster from."
required: true
refStream:
description: "The refStream of the image the test runs on."
required: true
clusterCreation:
description: "How the infrastructure for the e2e test was created. One of [cli, terraform]."
default: "cli"
runs:
using: "composite"
steps:
- name: Login to Azure (IAM service principal)
if: inputs.cloudProvider == 'azure'
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureIAMCreateCredentials }}
- name: Add Azure Keyvault access role
if: inputs.cloudProvider == 'azure'
shell: bash
run: |
UAMI=$(yq eval ".provider.azure.userAssignedIdentity" constellation-conf.yaml)
PRINCIPAL_ID=$(az identity show --ids "$UAMI" | yq ".principalId")
if [ -z "$PRINCIPAL_ID" ]; then
echo "::error::PRINCIPAL_ID for \"$UAMI\" not found"
echo "::group::Available identities"
az identity list | yq ".[].id"
echo "::endgroup::"
exit 1
fi
az role assignment create --role "Key Vault Secrets User" \
--assignee "$PRINCIPAL_ID" \
--scope /subscriptions/0d202bbb-4fa7-4af8-8125-58c269a05435/resourceGroups/e2e-test-creds/providers/Microsoft.KeyVault/vaults/opensearch-creds
- name: Login to Azure (Cluster service principal)
if: inputs.cloudProvider == 'azure'
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureClusterCreateCredentials }}
- name: Login to AWS (IAM service principal)
if: inputs.cloudProvider == 'aws'
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2EIAM
aws-region: eu-central-1
# extend token expiry to 6 hours to ensure constellation can terminate
role-duration-seconds: 21600
- name: Add AWS Secrets Manager access role
if: inputs.cloudProvider == 'aws'
shell: bash
run: |
INSTANCE_PROFILE=$(yq eval ".provider.aws.iamProfileControlPlane" constellation-conf.yaml)
ROLE_NAME=$(aws iam get-instance-profile --instance-profile-name "$INSTANCE_PROFILE" | yq ".InstanceProfile.Roles[0].RoleName")
aws iam attach-role-policy \
--role-name "$ROLE_NAME" \
--policy-arn arn:aws:iam::795746500882:policy/GitHubActionsOSCredAccess
- name: Login to AWS (Cluster service principal)
if: inputs.cloudProvider == 'aws'
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2ECluster
aws-region: eu-central-1
# extend token expiry to 6 hours to ensure constellation can terminate
role-duration-seconds: 21600
- name: Cdbg deploy
shell: bash
run: |
echo "::group::cdbg deploy"
on_error() {
echo "::error::cdbg deploy failed"
}
trap on_error ERR
chmod +x $GITHUB_WORKSPACE/build/cdbg
cdbg deploy \
--bootstrapper "${{ github.workspace }}/build/bootstrapper" \
--upgrade-agent "${{ github.workspace }}/build/upgrade-agent" \
--info logcollect=true \
--info logcollect.github.actor="${{ github.triggering_actor }}" \
--info logcollect.github.workflow="${{ github.workflow }}" \
--info logcollect.github.run-id="${{ github.run_id }}" \
--info logcollect.github.run-attempt="${{ github.run_attempt }}" \
--info logcollect.github.ref-name="${{ github.ref_name }}" \
--info logcollect.github.sha="${{ github.sha }}" \
--info logcollect.github.runner-os="${{ runner.os }}" \
--info logcollect.github.e2e-test-payload="${{ inputs.test }}" \
--info logcollect.github.is-debug-cluster=false \
--info logcollect.github.ref-stream="${{ inputs.refStream }}" \
--info logcollect.github.kubernetes-version="${{ inputs.kubernetesVersion }}" \
--info logcollect.github.cluster-creation="${{ inputs.clusterCreation }}" \
--info logcollect.github.attestation-variant="${{ inputs.attestationVariant }}" \
--info logcollect.deployment-type="debugd" \
--verbosity=-1 \
--force
echo "::endgroup::"

View File

@ -0,0 +1,58 @@
name: Check measurements reproducibility
description: Check if the measurements of a given release are reproducible.
inputs:
version:
type: string
description: The version of the measurements that are downloaded from the CDN.
required: true
ref:
type: string
description: The git ref to check out. You probably want this to be the tag of the release you are testing.
required: true
runs:
using: "composite"
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ inputs.ref }}
path: ./release
- name: Set up bazel
uses: ./.github/actions/setup_bazel_nix
with:
useCache: "false"
nixTools: |
systemdUkify
jq
jd-diff-patch
moreutils
- name: Build images
id: build-images
shell: bash
run: |
set -euo pipefail
# Build required binaries
pushd release
bazel build //image/system:stable
echo "buildPath=$PWD/bazel-bin/image" | tee -a "$GITHUB_OUTPUT"
popd
- name: Download measurements
shell: bash
run: |
curl -fsLO https://cdn.confidential.cloud/constellation/v2/ref/-/stream/stable/${{ inputs.version }}/image/measurements.json
- name: Cleanup release measurements and generate our own
shell: bash
run: |
${{ github.action_path }}/create_measurements.sh "${{ steps.build-images.outputs.buildPath }}"
- name: Compare measurements
shell: bash
run: |
${{ github.action_path }}/compare_measurements.sh "${{ steps.build-images.outputs.buildPath }}"

View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
# no -e since we need to collect errors later
# no -u since it interferes with checking associative arrays
set -o pipefail
shopt -s extglob
declare -A errors
for directory in "$1"/system/!(mkosi_wrapper.sh); do
dirname="$(basename "$directory")"
attestationVariant="$(echo "$dirname" | cut -d_ -f2)"
echo "Their measurements for $attestationVariant:"
ts " " < "$attestationVariant"_their-measurements.json
echo "Own measurements for $attestationVariant:"
ts " " < "$attestationVariant"_own-measurements.json
diff="$(jd ./"$attestationVariant"_their-measurements.json ./"$attestationVariant"_own-measurements.json)"
if [[ -n $diff ]]; then
errors["$attestationVariant"]="$diff"
fi
done
for attestationVariant in "${!errors[@]}"; do
echo "Failed to reproduce measurements for $attestationVariant:"
echo "${errors["$attestationVariant"]}" | ts " "
done
if [[ ${#errors[@]} -ne 0 ]]; then
exit 1
fi

View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
shopt -s extglob
for directory in "$1"/system/!(mkosi_wrapper.sh); do
dirname="$(basename "$directory")"
csp="$(echo "$dirname" | cut -d_ -f1)"
attestationVariant="$(echo "$dirname" | cut -d_ -f2)"
# This jq filter selects the measurements for the correct CSP and attestation variant
# and then removes all `warnOnly: true` measurements.
jq --arg attestation_variant "$attestationVariant" --arg csp "$csp" \
'
.list.[]
| select(
.attestationVariant == $attestation_variant
and (.csp | ascii_downcase) == $csp
)
| .measurements
| to_entries
| map(select(.value.warnOnly | not))
| from_entries
| del(.[] .warnOnly)
' \
measurements.json > "$attestationVariant"_their-measurements.json
bazel run --run_under "sudo --preserve-env" //image/measured-boot/cmd -- "$directory/constellation" /dev/stdout | jq '.measurements' > ./"$attestationVariant"_own-measurements.json
done

View File

@ -1,5 +1,5 @@
name: Constellation create
description: Create a new Constellation cluster using latest OS image.
description: Create a new Constellation cluster using the latest OS image.
inputs:
workerNodesCount:
@ -9,11 +9,17 @@ inputs:
description: "Number of control-plane nodes to spawn."
required: true
cloudProvider:
description: "Either 'gcp' or 'azure'."
description: "Either 'gcp', 'aws' or 'azure'."
required: true
attestationVariant:
description: "Attestation variant to use."
required: true
machineType:
description: "Machine type of VM to spawn."
required: false
cliVersion:
description: "Version of the CLI"
required: true
osImage:
description: "OS image to use."
required: true
@ -23,50 +29,47 @@ inputs:
kubernetesVersion:
description: "Kubernetes version to create the cluster from."
required: false
keepMeasurements:
artifactNameSuffix:
description: "Suffix for artifact naming."
required: true
fetchMeasurements:
default: "false"
description: "Keep measurements embedded in the CLI."
existingConfig:
default: "false"
description: "Use existing config file."
#
# GCP specific inputs
#
gcpProject:
description: "The GCP project to deploy Constellation in."
description: "Update measurements via the 'constellation config fetch-measurements' command."
azureSNPEnforcementPolicy:
required: false
gcpClusterServiceAccountKey:
description: "The GCP Service account to use inside the created Constellation cluster."
description: "Azure SNP enforcement policy."
test:
description: "The e2e test payload."
required: true
azureClusterCreateCredentials:
description: "Azure credentials authorized to create a Constellation cluster."
required: true
azureIAMCreateCredentials:
description: "Azure credentials authorized to create an IAM configuration."
required: true
refStream:
description: "Reference and stream of the image in use"
required: false
#
# Azure specific inputs
#
azureSubscription:
description: "The Azure subscription ID to deploy Constellation in."
internalLoadBalancer:
description: "Whether to use an internal load balancer for the control plane"
required: false
azureTenant:
description: "The Azure tenant ID to deploy Constellation in."
clusterCreation:
description: "How to create infrastructure for the e2e test. One of [cli, terraform]."
default: "cli"
marketplaceImageVersion:
description: "Marketplace OS image version. Used instead of osImage."
required: false
azureClientID:
description: "The Azure client ID of the application registration created for Constellation."
required: false
azureClientSecret:
description: "The Azure client secret value of the used secret."
required: false
azureUserAssignedIdentity:
description: "The Azure user assigned identity to use for Constellation."
required: false
azureResourceGroup:
description: "The Azure resource group to use for Constellation cluster"
force:
description: "Set the force-flag on apply to ignore version mismatches."
required: false
encryptionSecret:
description: "The secret to use for encrypting the artifact."
required: true
outputs:
kubeconfig:
description: "The kubeconfig for the cluster."
value: ${{ steps.constellation-init.outputs.KUBECONFIG }}
masterSecret:
description: "The master-secret for the cluster."
value: ${{ steps.constellation-init.outputs.MASTERSECRET }}
value: ${{ steps.get-kubeconfig.outputs.KUBECONFIG }}
osImageUsed:
description: "The OS image used in the cluster."
value: ${{ steps.setImage.outputs.image }}
@ -74,65 +77,21 @@ outputs:
runs:
using: "composite"
steps:
- name: Constellation config generate
- name: Set constellation name
shell: bash
if: inputs.existingConfig != 'true'
run: |
if [[ -n "${{ inputs.kubernetesVersion }}" ]]; then
constellation config generate ${{ inputs.cloudProvider }} --kubernetes="${{ inputs.kubernetesVersion }}" --debug
else
constellation config generate ${{ inputs.cloudProvider }} --debug
fi
yq eval -i "(.name) = \"e2e-test\"" constellation-conf.yaml
yq eval -i \
"(.provider | select(. | has(\"azure\")).azure.subscription) = \"${{ inputs.azureSubscription }}\" |
(.provider | select(. | has(\"azure\")).azure.tenant) = \"${{ inputs.azureTenant }}\" |
(.provider | select(. | has(\"azure\")).azure.location) = \"West US\" |
(.provider | select(. | has(\"azure\")).azure.userAssignedIdentity) = \"${{ inputs.azureUserAssignedIdentity }}\" |
(.provider | select(. | has(\"azure\")).azure.resourceGroup) = \"${{ inputs.azureResourceGroup }}\" |
(.provider | select(. | has(\"azure\")).azure.appClientID) = \"${{ inputs.azureClientID }}\" |
(.provider | select(. | has(\"azure\")).azure.clientSecretValue) = \"${{ inputs.azureClientSecret }}\"" \
constellation-conf.yaml
yq eval -i \
"(.provider | select(. | has(\"gcp\")).gcp.project) = \"${{ inputs.gcpProject }}\" |
(.provider | select(. | has(\"gcp\")).gcp.region) = \"europe-west3\" |
(.provider | select(. | has(\"gcp\")).gcp.zone) = \"europe-west3-b\" |
(.provider | select(. | has(\"gcp\")).gcp.serviceAccountKeyPath) = \"serviceAccountKey.json\"" \
constellation-conf.yaml
yq eval -i \
"(.provider | select(. | has(\"aws\")).aws.region) = \"eu-central-1\" |
(.provider | select(. | has(\"aws\")).aws.zone) = \"eu-central-1c\" |
(.provider | select(. | has(\"aws\")).aws.iamProfileControlPlane) = \"e2e_test_control_plane_instance_profile\" |
(.provider | select(. | has(\"aws\")).aws.iamProfileWorkerNodes) = \"e2e_test_worker_node_instance_profile\"" \
constellation-conf.yaml
if [[ -n "${{ inputs.kubernetesVersion }}" ]]; then
yq eval -i "(.kubernetesVersion) = \"${{ inputs.kubernetesVersion }}\"" constellation-conf.yaml
fi
- name: Remove embedded measurements
if: inputs.keepMeasurements == 'false'
- name: Set Azure SNP enforcement policy
if: inputs.azureSNPEnforcementPolicy != ''
shell: bash
run: |
yq eval -i \
"(.provider | select(. | has(\"aws\")).aws.measurements) = {15:{\"expected\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"warnOnly\":false}}" \
constellation-conf.yaml
yq eval -i \
"(.provider | select(. | has(\"azure\")).azure.measurements) = {15:{\"expected\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"warnOnly\":false}}" \
constellation-conf.yaml
yq eval -i \
"(.provider | select(. | has(\"gcp\")).gcp.measurements) = {15:{\"expected\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"warnOnly\":false}}"\
constellation-conf.yaml
yq eval -i \
"(.provider | select(. | has(\"qemu\")).qemu.measurements) = {15:{\"expected\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"warnOnly\":false}}" \
constellation-conf.yaml
if [[ ${{ inputs.attestationVariant }} != 'azure-sev-snp' ]]; then
echo "SNP enforcement policy is only supported for Azure"
exit 1
fi
yq eval -i "(.attestation.azureSEVSNP.firmwareSignerConfig.enforcementPolicy) \
= \"${{ inputs.azureSNPEnforcementPolicy }}\"" constellation-conf.yaml
- name: Set image
id: setImage
@ -150,21 +109,44 @@ runs:
yq eval -i "(.image) = \"${imageInput}\"" constellation-conf.yaml
echo "image=${imageInput}" | tee -a "$GITHUB_OUTPUT"
- name: Set marketplace image flag (AWS)
if: inputs.marketplaceImageVersion != '' && inputs.cloudProvider == 'aws'
shell: bash
run: |
yq eval -i "(.provider.aws.useMarketplaceImage) = true" constellation-conf.yaml
yq eval -i "(.image) = \"${{ inputs.marketplaceImageVersion }}\"" constellation-conf.yaml
- name: Set marketplace image flag (Azure)
if: inputs.marketplaceImageVersion != '' && inputs.cloudProvider == 'azure'
shell: bash
run: |
yq eval -i "(.provider.azure.useMarketplaceImage) = true" constellation-conf.yaml
yq eval -i "(.image) = \"${{ inputs.marketplaceImageVersion }}\"" constellation-conf.yaml
- name: Set marketplace image flag (GCP)
if: inputs.marketplaceImageVersion != '' && inputs.cloudProvider == 'gcp'
shell: bash
run: |
yq eval -i "(.provider.gcp.useMarketplaceImage) = true" constellation-conf.yaml
yq eval -i "(.image) = \"${{ inputs.marketplaceImageVersion }}\"" constellation-conf.yaml
- name: Update measurements for non-stable images
if: inputs.fetchMeasurements
shell: bash
run: |
constellation config fetch-measurements --debug --insecure
- name: Set instanceType
if: inputs.machineType && inputs.machineType != 'default'
shell: bash
run: |
yq eval -i "(.provider | select(. | has(\"azure\")).azure.instanceType) = \"${{ inputs.machineType }}\"" constellation-conf.yaml
yq eval -i "(.provider | select(. | has(\"gcp\")).gcp.instanceType) = \"${{ inputs.machineType }}\"" constellation-conf.yaml
yq eval -i "(.provider | select(. | has(\"aws\")).aws.instanceType) = \"${{ inputs.machineType }}\"" constellation-conf.yaml
yq eval -i "(.nodeGroups[] | .instanceType) = \"${{ inputs.machineType }}\"" constellation-conf.yaml
- name: Create serviceAccountKey.json
if: inputs.cloudProvider == 'gcp' && !inputs.existingConfig # Skip if using existing config. serviceAccountKey.json is already present in that case.
- name: Set node count
shell: bash
env:
GCP_CLUSTER_SERVICE_ACCOUNT_KEY: ${{ inputs.gcpClusterServiceAccountKey }}
run: |
echo "$GCP_CLUSTER_SERVICE_ACCOUNT_KEY" > serviceAccountKey.json
yq eval -i "(.nodeGroups[] | select(.role == \"control-plane\") | .initialCount) = ${{ inputs.controlNodesCount }}" constellation-conf.yaml
yq eval -i "(.nodeGroups[] | select(.role == \"worker\") | .initialCount) = ${{ inputs.workerNodesCount }}" constellation-conf.yaml
- name: Enable debugCluster flag
if: inputs.isDebugImage == 'true'
@ -172,74 +154,79 @@ runs:
run: |
yq eval -i '(.debugCluster) = true' constellation-conf.yaml
# Uses --force flag since the CLI currently does not have a pre-release version and is always on the latest released version.
# However, many of our pipelines work on prerelease images. Thus the used images are newer than the CLI's version.
# This makes the version validation in the CLI fail.
- name: Constellation create
- name: Enable internalLoadBalancer flag
if: inputs.internalLoadBalancer == 'true'
shell: bash
run: |
yq eval -i '(.internalLoadBalancer) = true' constellation-conf.yaml
- name: Show Cluster Configuration
shell: bash
run: |
echo "Creating cluster using config:"
cat constellation-conf.yaml
sudo sh -c 'echo "127.0.0.1 license.confidential.cloud" >> /etc/hosts' || true
constellation create -c ${{ inputs.controlNodesCount }} -w ${{ inputs.workerNodesCount }} -y --force --debug
- name: Constellation create (CLI)
shell: bash
run: |
constellation apply --skip-phases=init,attestationconfig,certsans,helm,image,k8s -y --debug --tf-log=DEBUG
- name: Cdbg deploy
if: inputs.isDebugImage == 'true'
uses: ./.github/actions/cdbg_deploy
with:
cloudProvider: ${{ inputs.cloudProvider }}
attestationVariant: ${{ inputs.attestationVariant }}
test: ${{ inputs.test }}
azureClusterCreateCredentials: ${{ inputs.azureClusterCreateCredentials }}
azureIAMCreateCredentials: ${{ inputs.azureIAMCreateCredentials }}
refStream: ${{ inputs.refStream }}
kubernetesVersion: ${{ inputs.kubernetesVersion }}
clusterCreation: ${{ inputs.clusterCreation }}
- name: Set force flag
id: set-force-flag
if: inputs.force == 'true'
shell: bash
run: |
echo "::group::cdbg deploy"
chmod +x $GITHUB_WORKSPACE/build/cdbg
cdbg deploy \
--bootstrapper "${{ github.workspace }}/build/bootstrapper" \
--upgrade-agent "${{ github.workspace }}/build/upgrade-agent" \
--info logcollect=true \
--info logcollect.github.actor="${{ github.triggering_actor }}" \
--info logcollect.github.workflow="${{ github.workflow }}" \
--info logcollect.github.run-id="${{ github.run_id }}" \
--info logcollect.github.run-attempt="${{ github.run_attempt }}" \
--info logcollect.github.ref-name="${{ github.ref_name }}" \
--info logcollect.github.sha="${{ github.sha }}" \
--info logcollect.github.runner-os="${{ runner.os }}" \
--force
echo "::endgroup::"
echo "flag=--force" | tee -a $GITHUB_OUTPUT
- name: Constellation init
id: constellation-init
- name: Set conformance flag
id: set-conformance-flag
if: inputs.test == 'sonobuoy conformance'
shell: bash
run: |
constellation init --force --debug
echo "KUBECONFIG=$(pwd)/constellation-admin.conf" >> $GITHUB_OUTPUT
echo "MASTERSECRET=$(pwd)/constellation-mastersecret.json" >> $GITHUB_OUTPUT
echo "flag=--conformance" | tee -a $GITHUB_OUTPUT
- name: Constellation apply (Terraform)
id: constellation-apply-terraform
if: inputs.clusterCreation == 'terraform'
uses: ./.github/actions/terraform_apply
with:
cloudProvider: ${{ inputs.cloudProvider }}
- name: Constellation apply
id: constellation-apply-cli
if: inputs.clusterCreation != 'terraform'
shell: bash
run: |
constellation apply --skip-phases=infrastructure --debug ${{ steps.set-force-flag.outputs.flag }} ${{ steps.set-conformance-flag.outputs.flag }}
- name: Get kubeconfig
id: get-kubeconfig
shell: bash
run: |
echo "KUBECONFIG=$(pwd)/constellation-admin.conf" | tee -a $GITHUB_OUTPUT
# TODO(nirusu): Temporarily increase kubectl wait timeout here - might be related to all the Cilium / cert-manager issues?
- name: Wait for nodes to join and become ready
shell: bash
env:
KUBECONFIG: "${{ steps.constellation-init.outputs.KUBECONFIG }}"
KUBECONFIG: "${{ steps.get-kubeconfig.outputs.KUBECONFIG }}"
JOINTIMEOUT: "1200" # 20 minutes timeout for all nodes to join
run: |
echo "::group::Wait for nodes"
NODES_COUNT=$((${{ inputs.controlNodesCount }} + ${{ inputs.workerNodesCount }}))
JOINWAIT=0
until [[ "$(kubectl get nodes -o json | jq '.items | length')" == "${NODES_COUNT}" ]] || [[ $JOINWAIT -gt $JOINTIMEOUT ]];
do
echo "$(kubectl get nodes -o json | jq '.items | length')/"${NODES_COUNT}" nodes have joined.. waiting.."
JOINWAIT=$((JOINWAIT+30))
sleep 30
done
if [[ $JOINWAIT -gt $JOINTIMEOUT ]]; then
echo "Timed out waiting for nodes to join"
exit 1
fi
echo "$(kubectl get nodes -o json | jq '.items | length')/"${NODES_COUNT}" nodes have joined"
if ! kubectl wait --for=condition=ready --all nodes --timeout=20m; then
kubectl get pods -n kube-system
kubectl get events -n kube-system
echo "::error::kubectl wait timed out before all nodes became ready"
echo "::endgroup::"
exit 1
fi
echo "::endgroup::"
CONTROL_NODES_COUNT: "${{ inputs.controlNodesCount }}"
WORKER_NODES_COUNT: "${{ inputs.workerNodesCount }}"
run: ./.github/actions/constellation_create/wait-for-nodes.sh
- name: Download boot logs
if: always()
@ -249,23 +236,51 @@ runs:
CSP: ${{ inputs.cloudProvider }}
run: |
echo "::group::Download boot logs"
CONSTELL_UID=$(yq '.infrastructure.uid' constellation-state.yaml)
case $CSP in
azure)
AZURE_RESOURCE_GROUP=$(yq eval ".provider.azure.resourceGroup" constellation-conf.yaml)
./.github/actions/constellation_create/az-logs.sh ${AZURE_RESOURCE_GROUP}
;;
gcp)
./.github/actions/constellation_create/gcp-logs.sh
GCP_ZONE=$(yq eval ".provider.gcp.zone" constellation-conf.yaml)
./.github/actions/constellation_create/gcp-logs.sh ${GCP_ZONE} ${CONSTELL_UID}
;;
aws)
./.github/actions/constellation_create/aws-logs.sh eu-central-1
./.github/actions/constellation_create/aws-logs.sh us-east-2 ${CONSTELL_UID}
;;
esac
echo "::endgroup::"
- name: Upload boot logs
if: always() && !env.ACT
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
continue-on-error: true
uses: ./.github/actions/artifact_upload
with:
name: serial-logs-${{ inputs.cloudProvider }}
path: "*.log"
name: debug-logs-${{ inputs.artifactNameSuffix }}
path: |
*.log
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Prepare terraform state folders
if: always()
shell: bash
run: |
mkdir to-zip
cp -r constellation-terraform to-zip
# constellation-iam-terraform is optional
if [ -d constellation-iam-terraform ]; then
cp -r constellation-iam-terraform to-zip
fi
rm -f to-zip/constellation-terraform/plan.zip
rm -rf to-zip/*/.terraform
- name: Upload terraform state
if: always()
uses: ./.github/actions/artifact_upload
with:
name: terraform-state-${{ inputs.artifactNameSuffix }}
path: >
to-zip/constellation-terraform
to-zip/constellation-iam-terraform
encryptionSecret: ${{ inputs.encryptionSecret }}

View File

@ -6,53 +6,39 @@ set -euo pipefail
shopt -s inherit_errexit
echo "Using AWS region: ${1}"
pushd constellation-terraform
controlAutoscalingGroup=$(
terraform show -json |
jq -r .'values.root_module.child_modules[] |
select(.address == "module.instance_group_control_plane") |
.resources[0].values.name'
)
workerAutoscalingGroup=$(
terraform show -json |
jq -r .'values.root_module.child_modules[] |
select(.address == "module.instance_group_worker_nodes") |
.resources[0].values.name'
)
popd
echo "Using Constellation UID: ${2}"
controlInstances=$(
aws autoscaling describe-auto-scaling-groups \
aws ec2 describe-instances \
--filters "Name=tag:constellation-uid,Values=${2}" "Name=tag:constellation-role,Values=control-plane" \
--region "${1}" \
--no-paginate \
--output json \
--auto-scaling-group-names "${controlAutoscalingGroup}" |
jq -r '.AutoScalingGroups[0].Instances[].InstanceId'
--output json |
yq eval '.Reservations[].Instances[].InstanceId' -
)
workerInstances=$(
aws autoscaling describe-auto-scaling-groups \
aws ec2 describe-instances \
--filters "Name=tag:constellation-uid,Values=${2}" "Name=tag:constellation-role,Values=worker" \
--region "${1}" \
--no-paginate \
--output json \
--auto-scaling-group-names "${workerAutoscalingGroup}" |
jq -r '.AutoScalingGroups[0].Instances[].InstanceId'
--output json |
yq eval '.Reservations[].Instances[].InstanceId' -
)
echo "Fetching logs from control planes: ${controlInstances}"
for flag in "" "--latest"; do
echo "Fetching ${flag} logs from control planes"
for instance in ${controlInstances}; do
printf "Fetching for %s\n" "${instance}"
aws ec2 get-console-output "${flag}" --region "${1}" --instance-id "${instance}" |
jq -r .'Output' |
tail -n +2 > "control-plane-${instance}${flag}.log"
done
for instance in ${controlInstances}; do
printf "Fetching for %s\n" "${instance}"
aws ec2 get-console-output --region "${1}" --instance-id "${instance}" |
jq -r .'Output' |
tail -n +2 > control-plane-"${instance}".log
done
echo "Fetching logs from worker nodes: ${workerInstances}"
for instance in ${workerInstances}; do
printf "Fetching for %s\n" "${instance}"
aws ec2 get-console-output --region "${1}" --instance-id "${instance}" |
jq -r .'Output' |
tail -n +2 > worker-"${instance}".log
echo "Fetching ${flag} logs from worker nodes"
for instance in ${workerInstances}; do
printf "Fetching for %s\n" "${instance}"
aws ec2 get-console-output "${flag}" --region "${1}" --instance-id "${instance}" |
jq -r .'Output' |
tail -n +2 > "worker-${instance}${flag}.log"
done
done

View File

@ -7,8 +7,8 @@ printf "Fetching logs of instances in resource group %s\n" "${1}"
# get list of all scale sets
scalesetsjson=$(az vmss list --resource-group "${1}" -o json)
scalesetslist=$(echo "${scalesetsjson}" | jq -r '.[] | .name')
subscription=$(az account show | jq -r .id)
scalesetslist=$(echo "${scalesetsjson}" | yq eval '.[] | .name' -)
subscription=$(az account show | yq eval .id -)
printf "Checking scalesets %s\n" "${scalesetslist}"
@ -18,7 +18,7 @@ for scaleset in ${scalesetslist}; do
--resource-group "${1}" \
--name "${scaleset}" \
-o json |
jq -r '.[] | .instanceId'
yq eval '.[] | .instanceId' -
)
printf "Checking instance IDs %s\n" "${instanceids}"
for instanceid in ${instanceids}; do
@ -26,7 +26,7 @@ for scaleset in ${scalesetslist}; do
az rest \
--method post \
--url https://management.azure.com/subscriptions/"${subscription}"/resourceGroups/"${1}"/providers/Microsoft.Compute/virtualMachineScaleSets/"${scaleset}"/virtualmachines/"${instanceid}"/retrieveBootDiagnosticsData?api-version=2022-03-01 |
jq '.serialConsoleLogBlobUri' -r
yq eval '.serialConsoleLogBlobUri' -
)
sleep 4
curl -fsSL -o "./${scaleset}-${instanceid}.log" "${bloburi}"

View File

@ -3,49 +3,19 @@
set -euo pipefail
shopt -s inherit_errexit
pushd constellation-terraform
controlInstanceGroup=$(
terraform show -json |
jq -r .'values.root_module.child_modules[] |
select(.address == "module.instance_group_control_plane") |
.resources[0].values.base_instance_name'
)
workerInstanceGroup=$(
terraform show -json |
jq -r .'values.root_module.child_modules[] |
select(.address == "module.instance_group_worker") |
.resources[0].values.base_instance_name'
)
zone=$(
terraform show -json |
jq -r .'values.root_module.child_modules[] |
select(.address == "module.instance_group_control_plane") |
.resources[0].values.zone'
)
popd
echo "Using Zone: ${1}"
echo "Using Constellation UID: ${2}"
controlInstances=$(
gcloud compute instance-groups managed list-instances "${controlInstanceGroup##*/}" \
--zone "${zone}" \
--format=json |
jq -r '.[] | .instance'
allInstances=$(
gcloud compute instances list \
--filter="labels.constellation-uid=${2}" \
--format=json | yq eval '.[] | .name' -
)
workerInstances=$(
gcloud compute instance-groups managed list-instances "${workerInstanceGroup##*/}" \
--zone "${zone}" \
--format=json |
jq -r '.[] | .instance'
)
allInstances="${controlInstances} ${workerInstances}"
printf "Fetching logs for %s and %s\n" "${controlInstances}" "${workerInstances}"
for instance in ${allInstances}; do
shortName=${instance##*/}
printf "Fetching for %s\n" "${shortName}"
printf "Fetching for %s\n" "${instance}"
gcloud compute instances get-serial-port-output "${instance}" \
--port 1 \
--start 0 \
--zone "${zone}" > "${shortName}".log
--zone "${1}" > "${instance}".log
done

View File

@ -0,0 +1,51 @@
#!/bin/bash
# We don't want to abort the script if there's a transient error in kubectl.
set +e
set -uo pipefail
NODES_COUNT=$((CONTROL_NODES_COUNT + WORKER_NODES_COUNT))
JOINWAIT=0
# Reports how many nodes are registered and fulfill condition=ready.
num_nodes_ready() {
kubectl get nodes -o json |
jq '.items | map(select(.status.conditions[] | .type == "Ready" and .status == "True")) | length'
}
# Reports how many API server pods are ready.
num_apiservers_ready() {
kubectl get pods -n kube-system -l component=kube-apiserver -o json |
jq '.items | map(select(.status.conditions[] | .type == "Ready" and .status == "True")) | length'
}
# Prints node joining progress.
report_join_progress() {
echo -n "nodes_joined=$(kubectl get nodes -o json | jq '.items | length')/${NODES_COUNT} "
echo -n "nodes_ready=$(num_nodes_ready)/${NODES_COUNT} "
echo "api_servers_ready=$(num_apiservers_ready)/${CONTROL_NODES_COUNT} ..."
}
# Indicates by exit code whether the cluster is ready, i.e. all nodes and API servers are ready.
cluster_ready() {
[[ "$(num_nodes_ready)" == "${NODES_COUNT}" && "$(num_apiservers_ready)" == "${CONTROL_NODES_COUNT}" ]]
}
echo "::group::Wait for nodes"
until cluster_ready || [[ ${JOINWAIT} -gt ${JOINTIMEOUT} ]]; do
report_join_progress
JOINWAIT=$((JOINWAIT + 30))
sleep 30
done
report_join_progress
if [[ ${JOINWAIT} -gt ${JOINTIMEOUT} ]]; then
set -x
kubectl get nodes -o wide
kubectl get pods -n kube-system -o wide
kubectl get events -n kube-system
set +x
echo "::error::timeout reached before all nodes became ready"
echo "::endgroup::"
exit 1
fi
echo "::endgroup::"

View File

@ -5,14 +5,26 @@ inputs:
kubeconfig:
description: "The kubeconfig for the cluster."
required: true
clusterCreation:
description: "How the infrastructure for the e2e test was created. One of [cli, terraform]."
default: "cli"
gcpClusterDeleteServiceAccount:
description: "Service account with permissions to delete a Constellation cluster on GCP."
required: true
azureClusterDeleteCredentials:
description: "Azure credentials authorized to delete a Constellation cluster."
required: true
cloudProvider:
description: "Either 'aws', 'azure' or 'gcp'."
required: true
runs:
using: "composite"
steps:
- name: Delete persistent volumes
if: inputs.kubeconfig != ''
continue-on-error: true
shell: bash
continue-on-error: true
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
PV_DELETION_TIMEOUT: "120" # 2 minutes timeout for pv deletion
@ -23,6 +35,14 @@ runs:
# Scrap namespaces that contain PVCs
for namespace in `kubectl get namespace --no-headers=true -o custom-columns=":metadata.name"`; do
if [[ `kubectl get pvc -n $namespace --no-headers=true -o custom-columns=":metadata.name" | wc -l` -gt 0 ]]; then
if [[ "${namespace}" == "default" ]]; then
kubectl delete all --all --namespace "default" --wait
continue
fi
if [[ "${namespace}" == "kube-system" ]]; then
kubectl delete pvc --all --namespace "kube-system" --wait
continue
fi
kubectl delete namespace $namespace --wait
fi
done
@ -39,6 +59,28 @@ runs:
fi
echo "::endgroup::"
- name: Login to GCP (Cluster service account)
if: inputs.cloudProvider == 'gcp'
uses: ./.github/actions/login_gcp
with:
service_account: ${{ inputs.gcpClusterDeleteServiceAccount }}
- name: Login to AWS (Cluster role)
if: inputs.cloudProvider == 'aws'
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2ECluster
aws-region: eu-central-1
# extend token expiry to 6 hours to ensure constellation can terminate
role-duration-seconds: 21600
- name: Login to Azure (Cluster service principal)
if: inputs.cloudProvider == 'azure'
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureClusterDeleteCredentials }}
- name: Constellation terminate
shell: bash
run: constellation terminate --yes
run: |
constellation terminate --yes --tf-log=DEBUG

View File

@ -3,29 +3,36 @@ description: Create IAM configuration for a Constellation cluster.
inputs:
cloudProvider:
description: "Either 'aws', 'azure' or 'gcp'."
required: true
description: "Either 'aws', 'azure' or 'gcp'."
required: true
attestationVariant:
description: "The attestation variant to use."
required: true
kubernetesVersion:
description: "Kubernetes version to create the cluster from."
required: false
namePrefix:
description: "Name prefix to use for resources."
required: true
additionalTags:
description: "Additional resource tags that will be written into the constellation configuration."
default: ""
required: false
#
# AWS specific inputs
#
awsZone:
description: "AWS zone to deploy Constellation in."
required: false
awsPrefix:
description: "name prefix to use for the AWS resources."
required: false
#
# Azure specific inputs
#
azureSubscriptionID:
description: "Azure subscription ID to deploy Constellation in."
required: true
azureRegion:
description: "Azure region to deploy Constellation in."
required: false
azureResourceGroup:
description: "Name of the Azure resource group being created."
required: false
azureServicePrincipal:
description: "Name of the Azure service principal being created."
required: false
#
# GCP specific inputs
#
@ -35,49 +42,85 @@ inputs:
gcpZone:
description: "The GCP zone to deploy Constellation in."
required: false
gcpServiceAccountID:
description: "ID of the GCP service account being created."
#
# STACKIT specific inputs
#
stackitZone:
description: "The STACKIT zone to deploy Constellation in."
required: false
stackitProjectID:
description: "The STACKIT project ID to deploy Constellation in."
required: false
outputs:
existingConfig:
description: "Whether a configuration file has been created to be used in the next step."
value: ${{ steps.setExistingConfig.outputs.existingConfig }}
runs:
using: "composite"
steps:
- name: Generate config
id: generate-config
shell: bash
run: |
kubernetesFlag=""
if [[ ! -z "${{ inputs.kubernetesVersion }}" ]]; then
kubernetesFlag="--kubernetes=${{ inputs.kubernetesVersion }}"
fi
# TODO(v2.17): Remove this fallback and always use --tags flag
tagsFlag=""
if constellation config generate --help | grep -q -- --tags; then
tagsFlag="--tags=\"${{ inputs.additionalTags }}\""
fi
echo "flag=--update-config" | tee -a "$GITHUB_OUTPUT"
constellation config generate ${{ inputs.cloudProvider }} ${kubernetesFlag} --attestation ${{ inputs.attestationVariant }} ${tagsFlag}
- name: Constellation iam create aws
shell: bash
if: inputs.cloudProvider == 'aws'
run: |
constellation iam create aws \
--zone=${{ inputs.awsZone }} \
--prefix=${{ inputs.awsPrefix }} \
--generate-config --yes
--zone="${{ inputs.awsZone }}" \
--prefix="${{ inputs.namePrefix }}" \
--update-config \
--tf-log=DEBUG \
--yes
- name: Constellation iam create azure
shell: bash
if: inputs.cloudProvider == 'azure'
run: |
constellation iam create azure \
--region=${{ inputs.azureRegion }} \
--resourceGroup=${{ inputs.azureResourceGroup }} \
--servicePrincipal=${{ inputs.azureServicePrincipal }} \
--generate-config --yes
extraFlags=""
if [[ $(constellation iam create azure --help | grep -c -- --subscriptionID) -ne 0 ]]; then
extraFlags="--subscriptionID=${{ inputs.azureSubscriptionID }}"
fi
constellation iam create azure \
--region="${{ inputs.azureRegion }}" \
--resourceGroup="${{ inputs.namePrefix }}-rg" \
--servicePrincipal="${{ inputs.namePrefix }}-sp" \
--update-config \
--tf-log=DEBUG \
--yes ${extraFlags}
# TODO(@3u13r): Replace deprecated --serviceAccountID with --prefix
- name: Constellation iam create gcp
shell: bash
if: inputs.cloudProvider == 'gcp'
run: |
constellation iam create gcp \
--projectID=${{ inputs.gcpProjectID }} \
--zone=${{ inputs.gcpZone }} \
--serviceAccountID=${{ inputs.gcpServiceAccountID }} \
--generate-config --yes
--projectID="${{ inputs.gcpProjectID }}" \
--zone="${{ inputs.gcpZone }}" \
--serviceAccountID="${{ inputs.namePrefix }}-sa" \
--update-config \
--tf-log=DEBUG \
--yes
- name: Set existing config
id: setExistingConfig
- name: Set STACKIT-specific configuration
shell: bash
if: inputs.cloudProvider == 'stackit'
env:
STACKIT_PROJECT_ID: ${{ inputs.stackitProjectID }}
run: |
echo "existingConfig=true" >> $GITHUB_OUTPUT
yq eval -i "(.provider.openstack.stackitProjectID) = \"${STACKIT_PROJECT_ID}\"" constellation-conf.yaml
yq eval -i "(.provider.openstack.availabilityZone) = \"${{ inputs.stackitZone }}\"" constellation-conf.yaml
yq eval -i "(.nodeGroups.[].zone) = \"${{ inputs.stackitZone }}\"" constellation-conf.yaml

View File

@ -1,10 +1,42 @@
name: Delete IAM configuration
description: Delete previously created IAM configuration.
inputs:
cloudProvider:
description: "Either 'aws', 'azure' or 'gcp'."
required: true
gcpServiceAccount:
description: "GCP service account to use for authentication."
required: false
azureCredentials:
description: "Azure service principal to use for authentication."
required: false
runs:
using: "composite"
steps:
- name: Login to GCP (IAM service account)
if: inputs.cloudProvider == 'gcp'
uses: ./.github/actions/login_gcp
with:
service_account: ${{ inputs.gcpServiceAccount }}
- name: Login to AWS (IAM role)
if: inputs.cloudProvider == 'aws'
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2EIAM
aws-region: eu-central-1
# extend token expiry to 6 hours to ensure constellation can terminate
role-duration-seconds: 21600
- name: Login to Azure (IAM service principal)
if: inputs.cloudProvider == 'azure'
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureCredentials }}
- name: Delete IAM configuration
shell: bash
run: |
constellation iam destroy --yes
constellation iam destroy --yes --tf-log=DEBUG

View File

@ -0,0 +1,9 @@
name: Constellation IAM upgrade
description: Upgrade IAM configuration for a Constellation cluster.
runs:
using: "composite"
steps:
- name: Constellation iam upgrade aws
shell: bash
run: |
constellation iam upgrade apply --yes --debug

View File

@ -0,0 +1,35 @@
name: Create container registry login credentials file
description: Delete previously created IAM configuration.
inputs:
registry:
description: "Container registry to use"
required: true
username:
description: "Username used for authentication."
required: true
password:
description: "Password used for authentication."
required: true
runs:
using: "composite"
steps:
- name: Use docker for logging in
if: runner.os != 'macOS'
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: ${{ inputs.registry }}
username: ${{ inputs.username }}
password: ${{ inputs.password }}
- name: Manually create docker config.json
if: runner.os == 'macOS'
shell: bash
env:
REGISTRY: ${{ inputs.registry }}
USERNAME: ${{ inputs.username }}
PASSWORD: ${{ inputs.password }}
run: |
mkdir -p ~/.docker
echo "{\"auths\":{\"${REGISTRY}\":{\"username\":\"${USERNAME}\",\"password\":\"${PASSWORD}\"}}}" | tee ~/.docker/config.json

View File

@ -19,7 +19,7 @@ runs:
steps:
- name: Install Cosign
if: inputs.cosignPublicKey != '' && inputs.cosignPrivateKey != '' && inputs.cosignPassword != ''
uses: sigstore/cosign-installer@9becc617647dfa20ae7b1151972e9b3a2c338a2b # tag=v2.8.1
uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a # v3.8.1
- name: Download Syft & Grype
uses: ./.github/actions/install_syft_grype
@ -27,7 +27,6 @@ runs:
- name: Generate SBOM
shell: bash
env:
# COSIGN_EXPERIMENTAL: 1 # This breaks verification with HTTP 404
COSIGN_PUBLIC_KEY: ${{ inputs.cosignPublicKey }}
COSIGN_PRIVATE_KEY: ${{ inputs.cosignPrivateKey }}
COSIGN_PASSWORD: ${{ inputs.cosignPassword }}
@ -37,7 +36,7 @@ runs:
syft packages ${{ inputs.containerReference }} -o cyclonedx-json > container-image-predicate.json
cosign attest ${{ inputs.containerReference }} --key env://COSIGN_PRIVATE_KEY --predicate container-image-predicate.json --type "https://cyclonedx.org/bom" > container-image.att.json
cosign attach attestation ${{ inputs.containerReference }} --attestation container-image.att.json
# TODO: type should be auto-discovered after issue is resolved:
# TODO(3u13r): type should be auto-discovered after issue is resolved:
# https://github.com/sigstore/cosign/issues/2264
cosign verify-attestation ${{ inputs.containerReference }} --type "https://cyclonedx.org/bom" --key env://COSIGN_PUBLIC_KEY
grype ${{ inputs.containerReference }} --fail-on high --only-fixed --add-cpes-if-none

View File

@ -0,0 +1,96 @@
name: Log Collection Deployment
description: Deploy log collection functionality to the cluster.
inputs:
logstash-port:
description: "The port of the logstash service."
default: "5045"
kubeconfig:
description: "The kubeconfig of the cluster to deploy to."
required: true
opensearchUser:
description: "The username of the opensearch cluster."
required: true
opensearchPwd:
description: "The password of the opensearch cluster."
required: true
test:
description: "The e2e test payload."
required: true
provider:
description: "The CSP of the cluster."
required: true
attestationVariant:
description: "Attestation variant of the cluster."
required: false
isDebugImage:
description: "Whether the cluster is a debug cluster / uses a debug image."
required: true
refStream:
description: "Reference and stream of the image in use"
required: false
kubernetesVersion:
description: "Kubernetes version of the cluster"
required: false
clusterCreation:
description: "How the infrastructure for the e2e test was created. One of [cli, terraform]."
default: "cli"
runs:
using: "composite"
steps:
- name: Template Logcollection Helm Values
id: template
shell: bash
run: |
bazel run //hack/logcollector template -- \
--dir $(realpath .) \
--username ${{ inputs.opensearchUser }} \
--password ${{ inputs.opensearchPwd }} \
--port ${{ inputs.logstash-port }} \
--fields github.actor="${{ github.triggering_actor }}" \
--fields github.workflow="${{ github.workflow }}" \
--fields github.run-id="${{ github.run_id }}" \
--fields github.run-attempt="${{ github.run_attempt }}" \
--fields github.ref-name="${{ github.ref_name }}" \
--fields github.sha="${{ github.sha }}" \
--fields github.runner-os="${{ runner.os }}" \
--fields github.e2e-test-payload="${{ inputs.test }}" \
--fields github.is-debug-cluster="${{ inputs.isDebugImage }}" \
--fields github.e2e-test-provider="${{ inputs.provider }}" \
--fields github.ref-stream="${{ inputs.refStream }}" \
--fields github.kubernetes-version="${{ inputs.kubernetesVersion }}" \
--fields github.cluster-creation="${{ inputs.clusterCreation }}" \
--fields github.attestation-variant="${{ inputs.attestationVariant }}" \
--fields deployment-type="k8s"
# Make sure that helm is installed
# This is not always the case, e.g. on MacOS runners
- name: Install Helm
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0
with:
version: v3.9.0
- name: Deploy Logstash
id: deploy-logstash
shell: bash
working-directory: ./logstash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
helm repo add elastic https://helm.elastic.co
helm repo update
helm install logstash elastic/logstash \
--wait --timeout=1200s --values values.yml
- name: Deploy Filebeat
id: deploy-filebeat
shell: bash
working-directory: ./filebeat
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
helm repo add elastic https://helm.elastic.co
helm repo update
helm install filebeat elastic/filebeat \
--wait --timeout=1200s --values values.yml

View File

@ -0,0 +1,55 @@
name: Download release binaries
description: "Downloads all binaries created by a different job (and therefore not available in this job) in the release pipeline."
runs:
using: "composite"
steps:
- name: Download CLI binaries darwin-amd64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: constellation-darwin-amd64
- name: Download CLI binaries darwin-arm64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: constellation-darwin-arm64
- name: Download CLI binaries linux-amd64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: constellation-linux-amd64
- name: Download CLI binaries linux-arm64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: constellation-linux-arm64
- name: Download CLI binaries windows-amd64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: constellation-windows-amd64
- name: Download Terraform module
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: terraform-module
- name: Download Terraform provider binary darwin-amd64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: terraform-provider-constellation-darwin-amd64
- name: Download Terraform provider binary darwin-arm64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: terraform-provider-constellation-darwin-arm64
- name: Download Terraform provider binary linux-amd64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: terraform-provider-constellation-linux-amd64
- name: Download Terraform provider binary linux-arm64
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
with:
name: terraform-provider-constellation-linux-arm64

View File

@ -0,0 +1,33 @@
name: E2E Attestationconfig API Test
description: "Test the attestationconfig CLI is functional."
inputs:
attestationVariant:
description: "attestation variant to run tests against"
default: "azure-sev-snp"
cosignPrivateKey:
description: "Cosign private key"
required: true
cosignPassword:
description: "Password for Cosign private key"
required: true
runs:
using: "composite"
steps:
- name: Setup bazel
uses: ./.github/actions/setup_bazel_nix
- name: Login to AWS
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubTestResourceAPI
aws-region: eu-west-1
- name: Run attestationconfig API E2E
shell: bash
env:
COSIGN_PRIVATE_KEY: ${{ inputs.cosignPrivateKey }}
COSIGN_PASSWORD: ${{ inputs.cosignPassword }}
run: |
bazel run //internal/api/attestationconfigapi/cli:cli_e2e_test -- ${{ inputs.attestationVariant }}

View File

@ -18,7 +18,7 @@ runs:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
worker_count=$(kubectl get nodes -o json --selector='!node-role.kubernetes.io/control-plane' | jq '.items | length')
echo "worker_count=${worker_count}" >> $GITHUB_OUTPUT
echo "worker_count=${worker_count}" | tee -a "$GITHUB_OUTPUT"
echo "The cluster currently has ${worker_count} nodes."
# The following step identifies the name of the worker scaling group. As the scaling group is
@ -43,7 +43,7 @@ runs:
exit 1
fi
worker_group=$(kubectl get scalinggroups -o json | jq -r '.items[].metadata.name | select(contains("worker"))')
echo "worker_name=${worker_group}" >> $GITHUB_OUTPUT
echo "worker_name=${worker_group}" | tee -a "$GITHUB_OUTPUT"
echo "The name of your worker scaling group is '${worker_group}'."
- name: Patch autoscaling to true
@ -64,7 +64,7 @@ runs:
worker_group=${{ steps.worker_name.outputs.worker_name }}
worker_count=${{ steps.worker_count.outputs.worker_count }}
worker_target=$((worker_count + 2))
echo "worker_target=${worker_target}" >> $GITHUB_OUTPUT
echo "worker_target=${worker_target}" | tee -a "$GITHUB_OUTPUT"
kubectl patch scalinggroups ${worker_group} --patch '{"spec":{"max": '${worker_target}'}}' --type='merge'
kubectl get scalinggroup ${worker_group} -o jsonpath='{.spec}' | jq
@ -82,14 +82,37 @@ runs:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
worker_count=${{ steps.worker_count.outputs.worker_count }}
kubectl create -n default deployment nginx --image=nginx --replicas $(( 110 * (worker_count + 1) + 55 ))
cat <<EOF | kubectl apply -f -
kind: Deployment
apiVersion: apps/v1
metadata:
name: nginx
namespace: default
spec:
replicas: $(( 110 * (worker_count + 1) + 55 ))
strategy:
rollingUpdate:
maxUnavailable: 0 # Ensure "kubectl wait" actually waits for all pods to be ready
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
EOF
- name: Wait for autoscaling and check result
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
kubectl wait deployment nginx --for condition=available --timeout=15m
kubectl wait deployment nginx --for condition=available --timeout=25m
worker_count=$(kubectl get nodes -o json --selector='!node-role.kubernetes.io/control-plane' | jq '.items | length')
if [[ $(( "${{ steps.scaling_limit.outputs.worker_target }}" )) -ne $(( "${worker_count}" )) ]]; then
echo "::error::Expected worker count ${{ steps.scaling_limit.outputs.worker_target }}, but was ${worker_count}"

View File

@ -0,0 +1,2 @@
benchmarks/
out/

View File

@ -41,18 +41,19 @@ Example table:
</details>
### Drawing Performance Charts
The action also draws graphs as used in the [Constellation docs](https://docs.edgeless.systems/constellation/next/overview/performance). The graphs compare the performance of Constellation to the performance of managed Kubernetes clusters.
Graphs are created with every run of the benchmarking action. The action attaches them to the `benchmark` artifact of the workflow run.
## Updating Stored Records
### Managed Kubernetes
One must manually update the stored benchmark records of managed Kubernetes:
### AKS
Follow the [Azure documentation](https://learn.microsoft.com/en-us/azure/aks/learn/quick-kubernetes-deploy-portal?tabs=azure-cli) to create an AKS cluster of desired benchmarking settings (region, instance types). If comparing against Constellation clusters with CVM instances, make sure to select the matching CVM instance type on Azure as well.
Follow the [Azure documentation](https://learn.microsoft.com/en-us/azure/aks/learn/quick-kubernetes-deploy-portal?tabs=azure-cli) to create an AKS cluster of desired benchmarking settings (region, instance types). If comparing against Constellation clusters with CVM instances, make sure to select the instance type on AKS as well.
For example:
```bash
az aks create -g moritz-constellation -n benchmark --node-count 2 -s Standard_DC4as_v5
az aks get-credentials -g moritz-constellation -n benchmark
```
Once the cluster is ready, set up managing access via `kubectl` and take the benchmark:
```bash
@ -63,42 +64,72 @@ install knb /usr/local/bin
cd ..
# Setup kubestr
HOSTOS="$(go env GOOS)"
case "$(go env GOOS)" in "darwin") HOSTOS="MacOS";; *) HOSTOS="$(go env GOOS)";; esac
HOSTARCH="$(go env GOARCH)"
KUBESTR_VER=0.4.37
curl -fsSLO https://github.com/kastenhq/kubestr/releases/download/v${KUBESTR_VER}/kubestr_${KUBESTR_VER}_${HOSTOS}_${HOSTARCH}.tar.gz
tar -xzf kubestr_${KUBESTR_VER}_${HOSTOS}_${HOSTARCH}.tar.gz
install kubestr /usr/local/bin
# Clone Constellation
git clone https://github.com/edgelesssys/constellation.git
# Create storage class without cloud caching
cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: default-no-cache
allowVolumeExpansion: true
allowedTopologies: []
mountOptions: []
parameters:
skuname: StandardSSD_LRS
cachingMode: None
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
EOF
# Run kubestr
mkdir -p out
kubestr fio -e "out/fio-constellation-aks.json" -o json -s encrypted-rwo -z 400Gi
kubestr fio -e "out/fio-AKS.json" -o json -s default -z 400Gi -f constellation/.github/actions/e2e_benchmark/fio.ini
# Run knb
workers=$(kubectl get nodes | grep worker)
server=$(echo $workers | head -1 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')
client=$(echo $workers | head -2 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')
knb -f "out/knb-constellation-aks.json" -o json --server-node $server --client-node $client
workers="$(kubectl get nodes | grep nodepool)"
server="$(echo $workers | head -1 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')"
client="$(echo $workers | head -2 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')"
knb -f "out/knb-AKS.json" -o json --server-node $server --client-node $client
# Benchmarks done, do processing.
# Parse
git clone https://github.com/edgelesssys/constellation.git
mkdir -p benchmarks
BDIR=benchmarks
EXT_NAME=AKS
KBENCH_RESULTS=out/
export BDIR=benchmarks
export CSP=azure
export EXT_NAME=AKS
export BENCH_RESULTS=out/
python constellation/.github/actions/e2e_benchmark/evaluate/parse.py
# Upload result to S3
S3_PATH=s3://edgeless-artifact-store/constellation/benchmarks
S3_PATH=s3://edgeless-artifact-store/constellation/benchmarks/<version>
aws s3 cp benchmarks/AKS.json ${S3_PATH}/AKS.json
```
### GKE
Create a GKE cluster of desired benchmarking settings (region, instance types). If comparing against Constellation clusters with CVM instances, make sure to select the matching CVM instance type on GCP and enable **confidential** VMs as well.
Create a GKE cluster of desired benchmarking settings (region, instance types). If comparing against Constellation clusters with CVM instances, make sure to select the matching instance type on GKE.
For example:
```bash
gcloud container clusters create benchmark \
--zone europe-west3-b \
--node-locations europe-west3-b \
--machine-type n2d-standard-4 \
--num-nodes 2
gcloud container clusters get-credentials benchmark --region europe-west3-b
```
Once the cluster is ready, set up managing access via `kubectl` and take the benchmark:
```bash
@ -109,36 +140,52 @@ install knb /usr/local/bin
cd ..
# Setup kubestr
HOSTOS="$(go env GOOS)"
case "$(go env GOOS)" in "darwin") HOSTOS="MacOS";; *) HOSTOS="$(go env GOOS)";; esac
HOSTARCH="$(go env GOARCH)"
KUBESTR_VER=0.4.37
curl -fsSLO https://github.com/kastenhq/kubestr/releases/download/v${KUBESTR_VER}/kubestr_${KUBESTR_VER}_${HOSTOS}_${HOSTARCH}.tar.gz
tar -xzf kubestr_${KUBESTR_VER}_${HOSTOS}_${HOSTARCH}.tar.gz
install kubestr /usr/local/bin
# Clone Constellation
git clone https://github.com/edgelesssys/constellation.git
# Run kubestr
mkdir -p out
kubestr fio -e "out/fio-constellation-gke.json" -o json -s encrypted-rwo -z 400Gi
kubestr fio -e "out/fio-GKE.json" -o json -s standard-rwo -z 400Gi -f constellation/.github/actions/e2e_benchmark/fio.ini
# Run knb
workers=$(kubectl get nodes | grep worker)
server=$(echo $workers | head -1 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')
client=$(echo $workers | head -2 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')
knb -f "out/knb-constellation-gke.json" -o json --server-node $server --client-node $client
workers="$(kubectl get nodes | grep default-pool)"
server="$(echo $workers | head -1 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')"
client="$(echo $workers | head -2 | tail -1 |cut -d ' ' -f1|tr '\n' ' ')"
knb -f "out/knb-GKE.json" -o json --server-node "$server" --client-node "$client"
# Parse
git clone https://github.com/edgelesssys/constellation.git
mkdir -p benchmarks
BDIR=benchmarks
EXT_NAME=GKE
KBENCH_RESULTS=out/
export BDIR=benchmarks
export CSP=gcp
export EXT_NAME=GKE
export BENCH_RESULTS=out/
python constellation/.github/actions/e2e_benchmark/evaluate/parse.py
# Upload result to S3
S3_PATH=s3://edgeless-artifact-store/constellation/benchmarks
S3_PATH=s3://edgeless-artifact-store/constellation/benchmarks/<version>
aws s3 cp benchmarks/GKE.json ${S3_PATH}/GKE.json
```
### Constellation
The action updates the stored Constellation records for the selected cloud provider when running on the main branch.
## Drawing Performance Charts
The action also contains the code to draw graphs as used in the [Constellation docs](https://docs.edgeless.systems/constellation/next/overview/performance).
The graphs compare the performance of Constellation to the performance of managed Kubernetes clusters.
It expects the results of `[AKS.json, GKE.json, constellation-azure.json, constellation-gcp.json]` to be present in the `BDIR` folder.
Graphs can thne be created from using the `graphs.py` script:
```bash
BDIR=benchmarks
python ./graph.py
```

View File

@ -5,6 +5,9 @@ inputs:
cloudProvider:
description: "Which cloud provider to use."
required: true
attestationVariant:
description: "Which attestation variant to use."
required: true
kubeconfig:
description: "The kubeconfig of the cluster to test."
required: true
@ -17,13 +20,19 @@ inputs:
awsOpenSearchPwd:
description: "AWS OpenSearch Password to upload the results."
required: false
artifactNameSuffix:
description: "Suffix for artifact naming."
required: true
encryptionSecret:
description: 'The secret to use for encrypting the artifact.'
required: true
runs:
using: "composite"
steps:
- name: Setup python
uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4.5.0
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: "3.10"
@ -39,11 +48,11 @@ runs:
install kubestr /usr/local/bin
- name: Checkout k8s-bench-suite
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
repository: "InfraBuilder/k8s-bench-suite"
ref: 1698974913b7b18ad54cf5860838029c295c77b1
repository: "edgelesssys/k8s-bench-suite"
ref: 67c64c854841165b778979375444da1c02e02210
path: k8s-bench-suite
- name: Run FIO benchmark
@ -51,15 +60,66 @@ runs:
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
if [[ "${{ inputs.cloudProvider }}" == "azure" ]]
then
cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fio-benchmark
allowVolumeExpansion: true
allowedTopologies: []
mountOptions: []
parameters:
skuname: StandardSSD_LRS
cachingMode: None
provisioner: azuredisk.csi.confidential.cloud
reclaimPolicy: Delete
volumeBindingMode: Immediate
EOF
fi
if [[ "${{ inputs.cloudProvider }}" == "gcp" ]]
then
cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fio-benchmark
provisioner: gcp.csi.confidential.cloud
volumeBindingMode: Immediate
allowVolumeExpansion: true
parameters:
type: pd-balanced
EOF
fi
if [[ "${{ inputs.cloudProvider }}" == "aws" ]]
then
cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fio-benchmark
parameters:
type: gp3
provisioner: aws.csi.confidential.cloud
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
EOF
fi
mkdir -p out
kubestr fio -e "out/fio-constellation-${{ inputs.cloudProvider }}.json" -o json -s encrypted-rwo -z 400Gi
kubestr fio -e "out/fio-constellation-${{ inputs.attestationVariant }}.json" -o json -s fio-benchmark -z 400Gi -f .github/actions/e2e_benchmark/fio.ini
- name: Upload raw FIO benchmark results
if: (!env.ACT)
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
uses: ./.github/actions/artifact_upload
with:
path: "out/fio-constellation-${{ inputs.cloudProvider }}.json"
name: "fio-constellation-${{ inputs.cloudProvider }}.json"
path: "out/fio-constellation-${{ inputs.attestationVariant }}.json"
name: "fio-constellation-${{ inputs.artifactNameSuffix }}.json"
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Run knb benchmark
shell: bash
@ -67,23 +127,46 @@ runs:
KUBECONFIG: ${{ inputs.kubeconfig }}
TERM: xterm-256color
run: |
workers="$(kubectl get nodes -o name | grep worker)"
workers="$(kubectl get nodes -o name -l '!node-role.kubernetes.io/control-plane')"
echo -e "Found workers:\n$workers"
server="$(echo "$workers" | tail +1 | head -1 | cut -d '/' -f2)"
echo "Server: $server"
client="$(echo "$workers" | tail +2 | head -1 | cut -d '/' -f2)"
echo "Client: $client"
k8s-bench-suite/knb -f "out/knb-constellation-${{ inputs.cloudProvider }}.json" -o json --server-node "$server" --client-node "$client"
k8s-bench-suite/knb -f "out/knb-constellation-${{ inputs.attestationVariant }}.json" -o json --server-node "$server" --client-node "$client"
- name: Upload raw knb benchmark results
if: (!env.ACT)
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
uses: ./.github/actions/artifact_upload
with:
path: "out/knb-constellation-${{ inputs.cloudProvider }}.json"
name: "knb-constellation-${{ inputs.cloudProvider }}.json"
path: "out/knb-constellation-${{ inputs.attestationVariant }}.json"
name: "knb-constellation-${{ inputs.artifactNameSuffix }}.json"
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Parse results, create diagrams and post the progression summary
shell: bash
env:
# Original result directory
BENCH_RESULTS: out/
# Working directory containing the previous results as JSON and to contain the graphs
BDIR: benchmarks
CSP: ${{ inputs.cloudProvider }}
ATTESTATION_VARIANT: ${{ inputs.attestationVariant }}
run: |
mkdir -p benchmarks
python .github/actions/e2e_benchmark/evaluate/parse.py
- name: Upload benchmark results to action run
if: (!env.ACT)
uses: ./.github/actions/artifact_upload
with:
path: >
benchmarks/constellation-${{ inputs.attestationVariant }}.json
name: "benchmarks-${{ inputs.artifactNameSuffix }}"
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Assume AWS role to retrieve and update benchmarks in S3
uses: aws-actions/configure-aws-credentials@e1e17a757e536f70e52b5a12b2e8d1d1c60e04ef # v2.0.0
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionUpdateBenchmarks
aws-region: us-east-2
@ -96,46 +179,27 @@ runs:
- name: Get previous benchmark records from S3
shell: bash
env:
CSP: ${{ inputs.cloudProvider }}
run: |
mkdir -p benchmarks
aws s3 cp --recursive ${S3_PATH} benchmarks --no-progress
if [[ -f benchmarks/constellation-${CSP}.json ]]; then
mv benchmarks/constellation-${CSP}.json benchmarks/constellation-${CSP}-previous.json
if aws s3 cp "${S3_PATH}/constellation-${{ inputs.attestationVariant }}.json" ./ --no-progress
then
mv "constellation-${{ inputs.attestationVariant }}.json" "benchmarks/constellation-${{ inputs.attestationVariant }}-previous.json"
else
echo "::warning::Couldn't retrieve previous benchmark records from s3"
fi
- name: Parse results, create diagrams and post the progression summary
- name: Compare results
shell: bash
env:
# Original result directory
BENCH_RESULTS: out/
# Working directory containing the previous results as JSON and to contain the graphs
BDIR: benchmarks
# Paths to benchmark results as JSON of the previous run and the current run
PREV_BENCH: benchmarks/constellation-${{ inputs.cloudProvider }}-previous.json
CURR_BENCH: benchmarks/constellation-${{ inputs.cloudProvider }}.json
CSP: ${{ inputs.cloudProvider }}
PREV_BENCH: benchmarks/constellation-${{ inputs.attestationVariant }}-previous.json
CURR_BENCH: benchmarks/constellation-${{ inputs.attestationVariant }}.json
run: |
python .github/actions/e2e_benchmark/evaluate/parse.py
export BENCHMARK_SUCCESS=true
if [[ -f "$PREV_BENCH" ]]; then
# Sets $BENCHMARK_SUCCESS=false if delta is bigger than defined in compare.py
# Fails if the results are outside the threshold range
python .github/actions/e2e_benchmark/evaluate/compare.py >> $GITHUB_STEP_SUMMARY
fi
echo BENCHMARK_SUCCESS=$BENCHMARK_SUCCESS >> $GITHUB_ENV
- name: Upload benchmark results to action run
if: (!env.ACT)
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
path: |
benchmarks/constellation-${{ inputs.cloudProvider }}.json
name: "benchmarks"
- name: Upload benchmark results to opensearch
- name: Upload benchmark results to OpenSearch
if: (!env.ACT)
shell: bash
env:
@ -145,24 +209,12 @@ runs:
run: |
curl -XPOST \
-u "${OPENSEARCH_USER}:${OPENSEARCH_PWD}" \
"${OPENSEARCH_DOMAIN}/benchmarks-${{ inputs.cloudProvider }}-$(date '+%Y')"/_doc \
--data-binary @benchmarks/constellation-${{ inputs.cloudProvider }}.json \
"${OPENSEARCH_DOMAIN}/benchmarks-${{ inputs.attestationVariant }}-$(date '+%Y')"/_doc \
--data-binary @benchmarks/constellation-${{ inputs.attestationVariant }}.json \
-H 'Content-Type: application/json'
- name: Update benchmark records in S3
if: github.ref_name == 'main'
shell: bash
env:
CSP: ${{ inputs.cloudProvider }}
run: |
aws s3 cp benchmarks/constellation-${CSP}.json ${S3_PATH}/constellation-${CSP}.json
- name: Check performance comparison result
shell: bash
run: |
if [[ $BENCHMARK_SUCCESS == true ]] ; then
echo "Benchmark successful, all metrics in the expected range."
else
echo "::error::Benchmark failed, some metrics are outside of the expected range."
exit 1
fi
aws s3 cp benchmarks/constellation-${{ inputs.attestationVariant }}.json ${S3_PATH}/constellation-${{ inputs.attestationVariant }}.json

View File

@ -0,0 +1,4 @@
__pycache__
benchmarks/
results/
out/

View File

@ -40,12 +40,15 @@ API_UNIT_STR = "ms"
# List of allowed deviation
ALLOWED_RATIO_DELTA = {
'iops': 0.7,
'bw_kbytes': 0.7,
'tcp_bw_mbit': 0.7,
'udp_bw_mbit': 0.7,
'iops': 0.8,
'bw_kbytes': 0.8,
'tcp_bw_mbit': 0.8,
'udp_bw_mbit': 0.8,
}
# Track failed comparison status
failed = False
def is_bigger_better(bench_suite: str) -> bool:
return bench_suite in BIGGER_BETTER
@ -91,18 +94,18 @@ class BenchmarkComparer:
raise ValueError('Failed reading benchmark file: {e}'.format(e=e))
try:
name = bench_curr['provider']
name = bench_curr['attestationVariant']
except KeyError:
raise ValueError(
'Current benchmark record file does not contain provider.')
'Current benchmark record file does not contain attestationVariant.')
try:
prev_name = bench_prev['provider']
prev_name = bench_prev['attestationVariant']
except KeyError:
raise ValueError(
'Previous benchmark record file does not contain provider.')
'Previous benchmark record file does not contain attestationVariant.')
if name != prev_name:
raise ValueError(
'Cloud providers of previous and current benchmark data do not match.')
'Cloud attestationVariants of previous and current benchmark data do not match.')
if 'fio' not in bench_prev.keys() or 'fio' not in bench_curr.keys():
raise ValueError('Benchmarks do not both contain fio records.')
@ -171,7 +174,8 @@ class BenchmarkComparer:
def set_failed() -> None:
os.environ['COMPARISON_SUCCESS'] = str(False)
global failed
failed = True
def main():
@ -179,6 +183,8 @@ def main():
c = BenchmarkComparer(path_prev, path_curr)
output = c.compare()
print(output)
if failed:
exit(1)
if __name__ == '__main__':

View File

@ -0,0 +1,250 @@
"""Generate graphs comparing K-Bench benchmarks across cloud providers and Constellation."""
import json
import os
import tempfile
from collections import defaultdict
from pathlib import Path
from urllib import request
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import font_manager as fm
SUBJECTS_AZURE = ['constellation-azure', 'AKS']
SUBJECTS_GCP = ['constellation-gcp', 'GKE']
LEGEND_NAMES_AZURE = ['Constellation', 'AKS']
LEGEND_NAMES_GCP = ['Constellation', 'GKE']
BAR_COLORS = ['#90FF99', '#929292', '#8B04DD', '#000000']
FONT_URL = "https://github.com/google/fonts/raw/main/apache/roboto/static/Roboto-Regular.ttf"
FONT_NAME = "Roboto-Regular.ttf"
FONT_SIZE = 13
# Some lookup dictionaries for x axis
fio_iops_unit = 'IOPS'
fio_bw_unit = 'MiB/s'
net_unit = 'Mbit/s'
def configure() -> str:
"""Read the benchmark data paths.
Expects ENV vars (required):
- BDIR=benchmarks
Raises TypeError if at least one of them is missing.
Returns: out_dir
"""
out_dir = os.environ.get('BDIR', None)
if not out_dir:
raise TypeError(
'ENV variables BDIR is required.')
return out_dir
def bar_chart(data, title='', unit='', x_label=''):
# """Draws a bar chart with multiple bars per data point.
# Args:
# data (dict[str, list]): Benchmark data dictionary: subject -> lists of value points
# title (str, optional): The title for the chart. Defaults to "".
# suffix (str, optional): The suffix for values e.g. "MiB/s". Defaults to "".
# x_label (str, optional): The label for the x-axis. Defaults to "".
# Returns:
# fig (matplotlib.pyplot.figure): The pyplot figure
# """
# Create plot and set configs
plt.rcdefaults()
plt.rc('font', family=FONT_NAME, size=FONT_SIZE)
fig, ax = plt.subplots(figsize=(10, 5))
# Calculate y positions
y_pos = np.arange(len(data))
bars = ax.barh(y_pos, data.values(), align='center', color=BAR_COLORS)
# Axis formatting
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_color('#DDDDDD')
ax.tick_params(bottom=False, left=False)
ax.set_axisbelow(True)
ax.xaxis.grid(True, color='#EEEEEE')
ax.yaxis.grid(False)
# Bar annotations
for bar in bars:
ax.text(
1.03*bar.get_width(),
bar.get_y() + bar.get_height() / 2,
f'{bar.get_width():.0f}',
verticalalignment='center',
)
# Set labels and titles
ax.set_yticks(y_pos, labels=data.keys())
ax.invert_yaxis() # labels read top-to-bottom
ax.set_xlabel(x_label, fontdict={"fontsize": 12})
if unit != '':
unit = f"({unit})"
ax.set_title(f'{title} {unit}', fontdict={
"fontsize": 20, 'weight': 'bold'})
plt.tight_layout()
# plt.show()
return fig
def main():
""" Download and setup fonts"""
path = Path(tempfile.mkdtemp())
font_path = path / FONT_NAME
request.urlretrieve(FONT_URL, font_path)
font = fm.FontEntry(fname=str(font_path), name=FONT_NAME)
fm.fontManager.ttflist.append(font)
"""Read the files and create diagrams."""
out_dir = configure()
combined_results = defaultdict(dict)
for test in SUBJECTS_AZURE+SUBJECTS_GCP:
# Read the previous results
read_path = os.path.join(
out_dir, '{subject}.json'.format(subject=test))
try:
with open(read_path, 'r') as res_file:
combined_results[test].update(json.load(res_file))
except OSError as e:
raise ValueError(
'Failed reading {subject} benchmark records: {e}'.format(subject=test, e=e))
# Network charts
# P2P TCP + UDP Azure
net_data = {}
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
net_data[l+" - TCP"] = int(combined_results[s]
['knb']['pod2pod']['tcp_bw_mbit'])
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
net_data[l+" - UDP"] = int(combined_results[s]
['knb']['pod2pod']['udp_bw_mbit'])
bar_chart(data=net_data,
title='K8S CNI Benchmark - Pod to Pod - Azure - Bandwidth',
unit=net_unit,
x_label=f"Bandwidth in {net_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_net_p2p_azure.png')
plt.savefig(save_name)
# P2P TCP + UDP GCP
net_data = {}
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
net_data[l+" - TCP"] = int(combined_results[s]
['knb']['pod2pod']['tcp_bw_mbit'])
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
net_data[l+" - UDP"] = int(combined_results[s]
['knb']['pod2pod']['udp_bw_mbit'])
bar_chart(data=net_data,
title='K8S CNI Benchmark - Pod to Pod - GCP - Bandwidth',
unit=net_unit,
x_label=f"Bandwidth in {net_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_net_p2p_gcp.png')
plt.savefig(save_name)
# P2SVC TCP + UDP Azure
net_data = {}
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
net_data[l+" - TCP"] = int(combined_results[s]
['knb']['pod2svc']['tcp_bw_mbit'])
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
net_data[l+" - UDP"] = int(combined_results[s]
['knb']['pod2svc']['udp_bw_mbit'])
bar_chart(data=net_data,
title='K8S CNI Benchmark - Pod to Service - Azure - Bandwidth',
unit=net_unit,
x_label=f"Bandwidth in {net_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_net_p2svc_azure.png')
plt.savefig(save_name)
# P2P TCP + UDP GCP
net_data = {}
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
net_data[l+" - TCP"] = int(combined_results[s]
['knb']['pod2svc']['tcp_bw_mbit'])
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
net_data[l+" - UDP"] = int(combined_results[s]
['knb']['pod2svc']['udp_bw_mbit'])
bar_chart(data=net_data,
title='K8S CNI Benchmark - Pod to Service - GCP - Bandwidth',
unit=net_unit,
x_label=f"Bandwidth in {net_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_net_p2svc_gcp.png')
plt.savefig(save_name)
# FIO charts
# IOPS on Azure
fio_data = {}
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
fio_data[l+" - Read"] = int(combined_results[s]
['fio']['read_iops']['iops'])
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
fio_data[l+" - Write"] = int(combined_results[s]
['fio']['write_iops']['iops'])
bar_chart(data=fio_data,
title='FIO Benchmark - Azure - IOPS',
x_label=f"{fio_iops_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_fio_azure_iops.png')
plt.savefig(save_name)
# IOPS on GCP
fio_data = {}
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
fio_data[l+" - Read"] = int(combined_results[s]
['fio']['read_iops']['iops'])
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
fio_data[l+" - Write"] = int(combined_results[s]
['fio']['write_iops']['iops'])
bar_chart(data=fio_data,
title='FIO Benchmark - GCP - IOPS',
x_label=f"{fio_iops_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_fio_gcp_iops.png')
plt.savefig(save_name)
# Bandwidth on Azure
fio_data = {}
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
fio_data[l+" - Read"] = int(combined_results[s]
['fio']['read_bw']['bw_kbytes'] / 1024)
for s, l in zip(SUBJECTS_AZURE, LEGEND_NAMES_AZURE):
fio_data[l+" - Write"] = int(combined_results[s]
['fio']['write_bw']['bw_kbytes'] / 1024)
bar_chart(data=fio_data,
title='FIO Benchmark - Azure - Bandwidth',
x_label=f"Bandwidth in {fio_bw_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_fio_azure_bw.png')
plt.savefig(save_name)
# Bandwidth on GCP
fio_data = {}
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
fio_data[l+" - Read"] = int(combined_results[s]
['fio']['read_bw']['bw_kbytes'] / 1024)
for s, l in zip(SUBJECTS_GCP, LEGEND_NAMES_GCP):
fio_data[l+" - Write"] = int(combined_results[s]
['fio']['write_bw']['bw_kbytes'] / 1024)
bar_chart(data=fio_data,
title='FIO Benchmark - GCP - Bandwidth',
x_label=f"Bandwidth in {fio_bw_unit} - Higher is better")
save_name = os.path.join(out_dir, 'benchmark_fio_gcp_bw.png')
plt.savefig(save_name)
if __name__ == '__main__':
main()

View File

@ -7,7 +7,7 @@ from datetime import datetime
from evaluators import fio, knb
def configure() -> Tuple[str, str, str, str | None, str, str, str, str]:
def configure() -> Tuple[str, str, str, str, str | None, str, str, str, str]:
"""Read the benchmark data paths.
Expects ENV vars (required):
@ -25,32 +25,34 @@ def configure() -> Tuple[str, str, str, str | None, str, str, str, str]:
"""
base_path = os.environ.get('BENCH_RESULTS', None)
csp = os.environ.get('CSP', None)
attestation_variant = os.environ.get('ATTESTATION_VARIANT', None)
out_dir = os.environ.get('BDIR', None)
if not base_path or not csp or not out_dir:
if not base_path or not csp or not out_dir or not attestation_variant:
raise TypeError(
'ENV variables BENCH_RESULTS, CSP, BDIR are required.')
'ENV variables BENCH_RESULTS, CSP, BDIR, ATTESTATION_VARIANT are required.')
ext_provider_name = os.environ.get('EXT_NAME', None)
commit_hash = os.environ.get('GITHUB_SHA', 'N/A')
commit_ref = os.environ.get('GITHUB_REF_NAME', 'N/A')
actor = os.environ.get('GITHUB_ACTOR', 'N/A')
workflow = os.environ.get('GITHUB_WORKFLOW', 'N/A')
return base_path, csp, out_dir, ext_provider_name, commit_hash, commit_ref, actor, workflow
return base_path, csp, attestation_variant, out_dir, ext_provider_name, commit_hash, commit_ref, actor, workflow
class BenchmarkParser:
def __init__(self, base_path, csp, out_dir, ext_provider_name=None, commit_hash="N/A", commit_ref="N/A", actor="N/A", workflow="N/A"):
def __init__(self, base_path, csp, attestation_variant, out_dir, ext_provider_name=None, commit_hash="N/A", commit_ref="N/A", actor="N/A", workflow="N/A"):
self.base_path = base_path
self.csp= csp
self.csp = csp
self.attestation_variant = attestation_variant
self.out_dir = out_dir
self.ext_provider_name = ext_provider_name
if not self.ext_provider_name:
self.ext_provider_name = f'constellation-{csp}'
self.ext_provider_name = f'constellation-{attestation_variant}'
self.commit_hash = commit_hash
self.commit_ref = commit_ref
self.actor = actor
self.workflow = workflow
def parse(self) -> None:
"""Read and parse the K-Bench tests.
@ -81,15 +83,16 @@ class BenchmarkParser:
timestamp = now.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
combined_results = {'metadata': {
'github.sha': self.commit_hash,
'github.ref-name': self.commit_ref,
'github.actor': self.actor,
'github.workflow': self.workflow,
},
'@timestamp': str(timestamp),
'provider': self.ext_provider_name,
'fio': {},
'knb': {}}
'github.sha': self.commit_hash,
'github.ref-name': self.commit_ref,
'github.actor': self.actor,
'github.workflow': self.workflow,
},
'@timestamp': str(timestamp),
'provider': self.ext_provider_name,
'attestationVariant': self.attestation_variant,
'fio': {},
'knb': {}}
combined_results['knb'].update(knb_results)
combined_results['fio'].update(fio_results)
@ -101,9 +104,11 @@ class BenchmarkParser:
def main():
base_path, csp, out_dir, ext_provider_name, commit_hash, commit_ref, actor, workflow = configure()
p = BenchmarkParser(base_path, csp, out_dir, ext_provider_name, commit_hash, commit_ref, actor, workflow)
base_path, csp, attestation_variant, out_dir, ext_provider_name, commit_hash, commit_ref, actor, workflow = configure()
p = BenchmarkParser(base_path, csp, attestation_variant, out_dir, ext_provider_name,
commit_hash, commit_ref, actor, workflow)
p.parse()
if __name__ == '__main__':
main()

View File

@ -0,0 +1,3 @@
numpy ==2.2.4
matplotlib ==3.10.1
Pillow ==11.1.0

36
.github/actions/e2e_benchmark/fio.ini vendored Normal file
View File

@ -0,0 +1,36 @@
[global]
direct=1
ioengine=libaio
runtime=60s
ramp_time=10s
size=10Gi
time_based=1
group_reporting
thread
cpus_allowed=0
[read_iops]
stonewall
readwrite=randread
bs=4k
iodepth=128
[write_iops]
stonewall
readwrite=randwrite
bs=4k
iodepth=128
[read_bw]
stonewall
readwrite=randread
bs=1024k
iodepth=128
[write_bw]
stonewall
readwrite=randwrite
bs=1024k
iodepth=128

View File

@ -0,0 +1,62 @@
name: E2E cleanup over timeframe
description: Clean up old terraform resources of E2E tests
inputs:
ghToken:
description: 'The github token that is used with the github CLI.'
required: true
encryptionSecret:
description: 'The secret to use for decrypting the artifacts.'
required: true
azure_credentials:
description: "Credentials authorized to create Constellation on Azure."
required: true
openStackCloudsYaml:
description: "The contents of ~/.config/openstack/clouds.yaml"
required: false
stackitUat:
description: "The UAT for STACKIT"
required: false
runs:
using: "composite"
steps:
- name: Authenticate AWS
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2EDestroy
aws-region: eu-central-1
- name: Authenticate Azure
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azure_credentials }}
- name: Authenticate GCP
uses: ./.github/actions/login_gcp
with:
service_account: "destroy-e2e@constellation-e2e.iam.gserviceaccount.com"
- name: Login to OpenStack
uses: ./.github/actions/login_openstack
with:
clouds_yaml: ${{ inputs.openStackCloudsYaml }}
- name: Login to STACKIT
uses: ./.github/actions/login_stackit
with:
serviceAccountToken: ${{ inputs.stackitUat }}
- name: Install tools
uses: ./.github/actions/setup_bazel_nix
with:
nixTools: |
_7zz
terraform
- name: Run cleanup
run: ./.github/actions/e2e_cleanup_timeframe/e2e-cleanup.sh
shell: bash
env:
GH_TOKEN: ${{ inputs.ghToken }}
ENCRYPTION_SECRET: ${{ inputs.encryptionSecret }}

View File

@ -0,0 +1,97 @@
#!/bin/bash
# get_e2e_test_ids_on_date gets all workflow IDs of workflows that contain "e2e" on a specific date.
function get_e2e_test_ids_on_date {
ids="$(gh run list --created "$1" --status failure --json createdAt,workflowName,databaseId --jq '.[] | select(.workflowName | contains("e2e") and (contains("MiniConstellation") | not)) | .databaseId' -L1000 -R edgelesssys/constellation || exit 1)"
echo "${ids}"
}
# download_tfstate_artifact downloads all artifacts matching the pattern terraform-state-* from a given workflow ID.
function download_tfstate_artifact {
gh run download "$1" -p "terraform-state-*" -R edgelesssys/constellation > /dev/null
}
# delete_resources runs terraform destroy on the constellation-terraform subfolder of a given folder.
function delete_resources {
if [[ -d "$1/constellation-terraform" ]]; then
cd "$1/constellation-terraform" || exit 1
terraform init > /dev/null || exit 1 # first, install plugins
terraform destroy -auto-approve || exit 1
cd ../../ || exit 1
fi
}
# delete_iam_config runs terraform destroy on the constellation-iam-terraform subfolder of a given folder.
function delete_iam_config {
if [[ -d "$1/constellation-iam-terraform" ]]; then
cd "$1/constellation-iam-terraform" || exit 1
terraform init > /dev/null || exit 1 # first, install plugins
terraform destroy -auto-approve || exit 1
cd ../../ || exit 1
fi
}
# check if the password for artifact decryption was given
if [[ -z ${ENCRYPTION_SECRET} ]]; then
echo "ENCRYPTION_SECRET is not set. Please set an environment variable with that secret."
exit 1
fi
artifact_pwd=${ENCRYPTION_SECRET}
shopt -s nullglob
start_date=$(date "+%Y-%m-%d")
end_date=$(date --date "-7 day" "+%Y-%m-%d")
dates_to_clean=()
# get all dates of the last week
while [[ ${end_date} != "${start_date}" ]]; do
dates_to_clean+=("${end_date}")
end_date=$(date --date "${end_date} +1 day" "+%Y-%m-%d")
done
echo "[*] retrieving run IDs for cleanup"
database_ids=()
for d in "${dates_to_clean[@]}"; do
echo " retrieving run IDs from $d"
mapfile -td " " tmp < <(get_e2e_test_ids_on_date "$d")
database_ids+=("${tmp[*]}")
done
# cleanup database_ids
mapfile -t database_ids < <(echo "${database_ids[@]}")
mapfile -td " " database_ids < <(echo "${database_ids[@]}")
echo "[*] downloading terraform state artifacts"
for id in "${database_ids[@]}"; do
if [[ ${id} == *[^[:space:]]* ]]; then
echo " downloading from workflow ${id}"
download_tfstate_artifact "${id}"
fi
done
echo "[*] extracting artifacts"
for directory in ./terraform-state-*; do
echo " extracting ${directory}"
# extract and decrypt the artifact
7zz x -t7z -p"${artifact_pwd}" -o"${directory}" "${directory}/archive.7z" > /dev/null || exit 1
done
# create terraform caching directory
mkdir "${HOME}/tf_plugin_cache"
export TF_PLUGIN_CACHE_DIR="${HOME}/tf_plugin_cache"
echo "[*] created terraform cache directory ${TF_PLUGIN_CACHE_DIR}"
echo "[*] deleting resources"
for directory in ./terraform-state-*; do
echo " deleting resources in ${directory}"
delete_resources "${directory}"
echo " deleting IAM configuration in ${directory}"
delete_iam_config "${directory}"
echo " deleting directory ${directory}"
rm -rf "${directory}"
done
exit 0

View File

@ -0,0 +1,68 @@
name: Emergency ssh
description: "Verify that an emergency ssh connection can be established."
inputs:
kubeconfig:
description: "The kubeconfig file for the cluster."
required: true
runs:
using: "composite"
steps:
- name: Test emergency ssh
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
set -euo pipefail
# Activate emergency ssh access to the cluster
pushd ./constellation-terraform
echo "emergency_ssh = true" >> terraform.tfvars
terraform apply -auto-approve
lb="$(terraform output -raw loadbalancer_address)"
popd
# write ssh config
cat > ssh_config <<EOF
Host $lb
ProxyJump none
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
IdentityFile ./access-key
PreferredAuthentications publickey
CertificateFile=constellation_cert.pub
User root
ProxyJump $lb
EOF
for i in {1..26}; do
if [[ "$i" -eq 26 ]]; then
echo "Port 22 never became reachable"
exit 1
fi
echo "Waiting until port 22 is reachable: $i/25"
if nc -z -w 25 "$lb" 22; then
break
fi
done
# generate and try keypair
ssh-keygen -t ecdsa -q -N "" -f ./access-key
constellation ssh --debug --key ./access-key.pub
internalIPs="$(kubectl get nodes -o=jsonpath='{.items[*].status.addresses}' | jq -r '.[] | select(.type == "InternalIP") | .address')"
for ip in $internalIPs; do
for i in {1..26}; do
if [[ "$i" -eq 26 ]]; then
echo "Failed to connect to $ip over $lb"
exit 1
fi
echo "Trying connection to $ip over $lb: $i/25"
if ssh -F ssh_config -o BatchMode=yes $ip true; then
echo "Connected to $ip successfully"
break
fi
done
done

View File

@ -5,6 +5,9 @@ inputs:
kubeconfig:
description: "The kubeconfig of the cluster to test."
required: true
cloudProvider:
description: "The CSP this test runs on. Some tests exercise functionality not supported everywhere."
required: false
runs:
using: "composite"
@ -18,7 +21,25 @@ runs:
run: |
kubectl apply -f ns.yml
kubectl apply -f lb.yml
go test -timeout=3h ../../../e2e/internal/lb/lb_test.go -v
bazel run --test_timeout=14400 //e2e/internal/lb:lb_test
- name: Test AWS Ingress
if: inputs.cloudProvider == 'aws'
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
working-directory: ./.github/actions/e2e_lb
run: |
kubectl apply -f aws-ingress.yml
kubectl wait -n lb-test ing/whoami --for=jsonpath='{.status.loadBalancer.ingress}' --timeout=5m
host=$(kubectl get -n lb-test ingress whoami -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}')
for i in $(seq 30); do
curl --silent --fail --connect-timeout 5 --output /dev/null http://$host && exit 0
sleep 10
done
echo "::error::Ingress did not become ready in the alloted time."
kubectl describe ing -n lb-test
exit 1
- name: Delete deployment
if: always()
@ -28,4 +49,5 @@ runs:
working-directory: ./.github/actions/e2e_lb
run: |
kubectl delete -f lb.yml
kubectl delete --ignore-not-found -f aws-ingress.yml
kubectl delete -f ns.yml --timeout=5m

35
.github/actions/e2e_lb/aws-ingress.yml vendored Normal file
View File

@ -0,0 +1,35 @@
apiVersion: v1
kind: Service
metadata:
name: whoami-internal
namespace: lb-test
spec:
selector:
app: whoami
ports:
- port: 80
targetPort: 80
type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: lb-test
name: whoami
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: whoami-internal
port:
number: 80

View File

@ -3,6 +3,8 @@ kind: Service
metadata:
name: whoami
namespace: lb-test
annotations:
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
spec:
selector:
app: whoami

View File

@ -0,0 +1,52 @@
name: Malicious join
description: "Verify that a malicious node cannot join a Constellation cluster."
inputs:
cloudProvider:
description: "The cloud provider the test runs on."
required: true
attestationVariant:
description: "The attestation variant used in the cluster."
required: true
kubeconfig:
description: "The kubeconfig file for the cluster."
required: true
githubToken:
description: "GitHub authorization token"
required: true
runs:
using: "composite"
steps:
- name: Log in to the Container registry
id: docker-login
uses: ./.github/actions/container_registry_login
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ inputs.githubToken }}
- name: Run malicious join
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
working-directory: e2e/malicious-join
run: |
bazel run --test_timeout=14400 //e2e/malicious-join:stamp_and_push
yq eval -i "(.spec.template.spec.containers[0].command) = \
[ \"/malicious-join_bin\", \
\"--js-endpoint=join-service.kube-system:9090\", \
\"--csp=${{ inputs.cloudProvider }}\", \
\"--variant=${{ inputs.attestationVariant }}\" ]" stamped_job.yaml
kubectl create ns malicious-join
kubectl apply -n malicious-join -f stamped_job.yaml
kubectl wait -n malicious-join --for=condition=complete --timeout=10m job/malicious-join
kubectl logs -n malicious-join job/malicious-join | tail -n 1 | jq '.'
ALL_TESTS_PASSED=$(kubectl logs -n malicious-join job/malicious-join | tail -n 1 | jq -r '.result.allPassed')
if [[ "$ALL_TESTS_PASSED" != "true" ]]; then
kubectl logs -n malicious-join job/malicious-join
kubectl logs -n kube-system svc/join-service
exit 1
fi
kubectl delete ns malicious-join

View File

@ -11,29 +11,55 @@ inputs:
azureTenantID:
description: "Azure tenant to use for login with OIDC"
required: true
buildBuddyApiKey:
description: "BuildBuddy API key for caching Bazel artifacts"
azureIAMCredentials:
description: "Azure IAM credentials used for cleaning up resources"
required: true
registry:
description: "Container registry to use"
required: true
githubToken:
description: "GitHub authorization token"
required: true
runs:
using: "composite"
steps:
- name: Install terraform
uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2.0.3
uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
with:
terraform_wrapper: false
- name: Setup bazel
uses: ./.github/actions/setup_bazel
uses: ./.github/actions/setup_bazel_nix
- name: Log in to the Container registry
uses: ./.github/actions/container_registry_login
with:
useCache: "true"
buildBuddyApiKey: ${{ inputs.buildBuddyApiKey }}
registry: ${{ inputs.registry }}
username: ${{ github.actor }}
password: ${{ inputs.githubToken }}
- name: MiniConstellation E2E
shell: bash
id: e2e-test
env:
ARM_CLIENT_ID: ${{ inputs.azureClientID }}
ARM_SUBSCRIPTION_ID: ${{ inputs.azureSubscriptionID }}
ARM_TENANT_ID: ${{ inputs.azureTenantID }}
run: |
bazelisk run //e2e/miniconstellation:remote_test
bazel run --test_timeout=14400 //e2e/miniconstellation:push_remote_test
- name: Log in to azure
# only log in if e2e test failed or if the run was cancelled
if: (failure() && steps.e2e-test.conclusion == 'failure') || cancelled()
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureIAMCredentials }}
- name: Clean up after failure
shell: bash
# clean up if e2e test failed or if the run was cancelled
if: (failure() && steps.e2e-test.conclusion == 'failure') || cancelled()
run: |
echo "[*] Deleting resource group ${{ steps.e2e-test.outputs.rgname }}"
az group delete -y --resource-group "${{ steps.e2e-test.outputs.rgname }}"

View File

@ -8,31 +8,36 @@ inputs:
kubeconfig:
description: "The kubeconfig for the cluster."
required: true
masterSecret:
description: "The master-secret for the cluster."
required: true
runs:
using: "composite"
steps:
- name: Restart worker node
shell: bash
run: |
WORKER_NODE=$(kubectl get nodes --selector='!node-role.kubernetes.io/control-plane' -o json | jq '.items[0].metadata.name' -r)
kubectl debug node/$WORKER_NODE --image=ubuntu -- bash -c "echo reboot > reboot.sh && chroot /host < reboot.sh"
kubectl wait --for=condition=Ready=false --timeout=10m node/$WORKER_NODE
kubectl wait --for=condition=Ready=true --timeout=10m --all nodes
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
WORKER_NODE=$(kubectl get nodes --selector='!node-role.kubernetes.io/control-plane' -o json | jq '.items[0].metadata.name' -r)
echo "Disabling the join-service and waiting for the node to be unresponsive"
kubectl patch daemonset -n kube-system join-service -p '{"spec":{"template":{"spec":{"nodeSelector":{"some-tag":""}}}}}'
kubectl debug node/$WORKER_NODE --image=ubuntu -- bash -c "echo reboot > reboot.sh && chroot /host < reboot.sh"
kubectl wait --for=condition=Ready=Unknown --timeout=10m node/$WORKER_NODE
echo "Re-enabling the join-service and waiting for the node to be back up"
kubectl patch daemonset -n kube-system join-service --type=json -p='[{"op": "remove", "path": "/spec/template/spec/nodeSelector/some-tag"}]'
kubectl wait --for=condition=Ready=true --timeout=10m --all nodes
- name: Restart all control plane nodes
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
CONTROL_PLANE_NODES=$(kubectl get nodes --selector='node-role.kubernetes.io/control-plane' -o json | jq '.items[].metadata.name' -r)
for CONTROL_PLANE_NODE in ${CONTROL_PLANE_NODES}; do
kubectl debug node/$CONTROL_PLANE_NODE --image=ubuntu -- bash -c "echo reboot > reboot.sh && chroot /host < reboot.sh"
done
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
- name: Constellation recover
shell: bash
run: |
@ -40,12 +45,12 @@ runs:
start_time=$(date +%s)
recovered=0
while true; do
output=$(constellation recover --master-secret=${{ inputs.masterSecret }} --force)
output=$(constellation recover)
if echo "$output" | grep -q "Pushed recovery key."; then
echo "$output"
i=$(echo "$output" | grep -o "Pushed recovery key." | wc -l | sed 's/ //g')
recovered=$((recovered+i))
if [[ $recovered -eq ${{ inputs.controlNodesCount }} ]]; then
if [[ $recovered -gt ${{ inputs.controlNodesCount }}/2 ]]; then
break
fi
fi
@ -56,11 +61,14 @@ runs:
exit 1
fi
echo "Did not recover all nodes yet, retrying in 5 seconds [$recovered/${{ inputs.controlNodesCount }}]"
echo "Did not recover a quorum (>${{inputs.controlNodesCount}}/2) of control-plane nodes yet, retrying in 5 seconds [$recovered/${{ inputs.controlNodesCount }}]"
sleep 5
done
- name: Wait for control plane to get back up
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
timeout=600
start_time=$(date +%s)
@ -80,5 +88,3 @@ runs:
echo "Cannot reach control plane, retrying in 10 seconds"
sleep 10
done
env:
KUBECONFIG: ${{ inputs.kubeconfig }}

65
.github/actions/e2e_s3proxy/action.yml vendored Normal file
View File

@ -0,0 +1,65 @@
name: E2E Test s3proxy
description: "Test the s3proxy."
inputs:
kubeconfig:
description: "Kubeconfig to access target cluster"
required: true
s3AccessKey:
description: "Access key for s3proxy"
required: true
s3SecretKey:
description: "Secret key for s3proxy"
required: true
githubToken:
description: "GitHub token"
required: true
runs:
using: "composite"
steps:
- name: Setup bazel
uses: ./.github/actions/setup_bazel_nix
- name: Get pseudoversion
id: pseudoversion
shell: bash
run: |
bazel build //bazel/settings:tag
echo pseudoversion=$(cat ./bazel-bin/bazel/settings/_tag.tags.txt) | tee -a "$GITHUB_OUTPUT"
- name: Log in to the Container registry
uses: ./.github/actions/container_registry_login
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ inputs.githubToken }}
- name: Build and push s3proxy image
id: s3proxybuild
shell: bash
run: |
bazel run //bazel/release:s3proxy_push
bazel build //bazel/release:s3proxy_tag.txt
tagpath=$(bazel cquery --output=files //bazel/release:s3proxy_tag.txt)
echo s3proxyImage=$(cat "${tagpath}") | tee -a "$GITHUB_OUTPUT"
- name: Setup s3proxy
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
S3_PROXY_IMAGE: ${{ steps.s3proxybuild.outputs.s3proxyImage }}
AWS_ACCESS_KEY_ID: ${{ inputs.s3AccessKey }}
AWS_SECRET_ACCESS_KEY: ${{ inputs.s3SecretKey }}
run: |
helm install s3proxy --set awsAccessKeyID="$AWS_ACCESS_KEY_ID" --set awsSecretAccessKey="$AWS_SECRET_ACCESS_KEY" --set image="$S3_PROXY_IMAGE" --set allowMultipart=true s3proxy/deploy/s3proxy
- name: Run mint
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
ACCESS_KEY: ${{ inputs.s3AccessKey }}
SECRET_KEY: ${{ inputs.s3SecretKey }}
IMAGE: "ghcr.io/edgelesssys/mint:v2.0.0@sha256:cf82f029ca77fd4ade4fb36f19945f44e58b1d03c1acb930d95ae7ec75a25c22" # renovate:mint-fork
run: |
./s3proxy/e2e/deploy.sh "$IMAGE"

View File

@ -2,14 +2,18 @@ name: sonobuoy
description: "Execute the e2e test framework sonobuoy."
inputs:
cloudProvider:
description: "CSP name necessary for artifact naming."
artifactNameSuffix:
description: "Suffix for artifact naming."
required: true
sonobuoyTestSuiteCmd:
description: "Which tests should be run?"
required: true
kubeconfig:
description: "The kubeconfig of the cluster to test."
required: true
encryptionSecret:
description: 'The secret to use for encrypting the artifact.'
required: true
runs:
using: "composite"
@ -17,7 +21,7 @@ runs:
- name: Install sonobuoy
shell: bash
env:
SONOBUOY_VER: "0.56.16"
SONOBUOY_VER: "0.57.1"
run: |
HOSTOS="$(go env GOOS)"
HOSTARCH="$(go env GOARCH)"
@ -39,14 +43,24 @@ runs:
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: sonobuoy retrieve --kubeconfig constellation-admin.conf
run: |
sonobuoy retrieve --kubeconfig constellation-admin.conf
sonobuoy results *_sonobuoy_*.tar.gz
sonobuoy results *_sonobuoy_*.tar.gz --mode detailed | jq 'select(.status!="passed")' | jq 'select(.status!="skipped")' || true
- name: Cleanup sonobuoy deployment
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
shell: bash
run: sonobuoy delete --wait
- name: Upload test results
if: always() && !env.ACT
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
uses: ./.github/actions/artifact_upload
with:
name: "sonobuoy_logs_${{ inputs.cloudProvider}}.tar.gz"
name: "sonobuoy-logs-${{ inputs.artifactNameSuffix }}.tar.gz"
path: "*_sonobuoy_*.tar.gz"
encryptionSecret: ${{ inputs.encryptionSecret }}
# Only works on "sonobuoy full" tests (e2e plugin)
- name: Extract test results
@ -56,7 +70,7 @@ runs:
- name: Publish test results
if: (!env.ACT) && contains(inputs.sonobuoyTestSuiteCmd, '--plugin e2e')
uses: mikepenz/action-junit-report@959aefb7f095e717eb407fe917238d61ca323ff3 # v3.7.6
uses: mikepenz/action-junit-report@97744eca465b8df9e6e33271cb155003f85327f1 # v5.5.0
with:
report_paths: "**/junit_01.xml"
fail_on_failure: true

View File

@ -4,90 +4,118 @@ description: "This test does the infrastructure management and runs the e2e test
inputs:
workerNodesCount:
description: "Number of worker nodes to spawn."
required: false
default: "2"
controlNodesCount:
description: "Number of control-plane nodes to spawn."
required: false
default: "3"
cloudProvider:
description: "Which cloud provider to use."
required: true
attestationVariant:
description: "Which attestation variant to use."
required: true
machineType:
description: "VM machine type. Make sure it matches selected cloud provider!"
required: false
osImage:
description: "OS image to run."
required: true
isDebugImage:
description: "Is OS img a debug img?"
default: "true"
required: true
cliVersion:
description: "Version of a released CLI to download, e.g. 'v2.3.0', leave empty to build it."
required: false
kubernetesVersion:
description: "Kubernetes version to create the cluster from."
refStream:
description: "RefStream of the image"
regionZone:
description: "Region or zone to use for resource creation"
required: false
keepMeasurements:
default: "false"
description: "Keep measurements embedded in the CLI."
gcpProject:
description: "The GCP project to deploy Constellation in."
required: false
gcp_service_account:
description: "Service account with permissions to create Constellation on GCP."
required: false
gcpClusterServiceAccountKey:
description: "Service account to use inside the created Constellation cluster on GCP."
required: false
required: true
gcpIAMCreateServiceAccount:
description: "Service account with permissions to create IAM configuration on GCP."
required: true
gcpClusterCreateServiceAccount:
description: "Service account with permissions to create a Constellation cluster on GCP."
required: true
awsOpenSearchDomain:
description: "AWS OpenSearch Endpoint Domain to upload the benchmark results."
required: false
awsOpenSearchUsers:
description: "AWS OpenSearch User to upload the benchmark results."
required: false
awsOpenSearchPwd:
description: "AWS OpenSearch Password to upload the benchmark results."
required: false
azureSubscription:
description: "The Azure subscription ID to deploy Constellation in."
required: false
azureTenant:
description: "The Azure tenant ID to deploy Constellation in."
required: false
azureClientID:
description: "The client ID of the application registration created for Constellation in Azure."
required: false
azureClientSecret:
description: "The client secret value of the used secret"
required: false
azureUserAssignedIdentity:
description: "The Azure user assigned identity to use for Constellation."
required: false
azureResourceGroup:
description: "The resource group to use"
required: false
azureSubscriptionID:
description: "Azure subscription ID to deploy Constellation in."
required: true
azureClusterCreateCredentials:
description: "Azure credentials authorized to create a Constellation cluster."
required: true
azureIAMCreateCredentials:
description: "Azure credentials authorized to create an IAM configuration."
required: true
test:
description: "The test to run. Can currently be one of [sonobuoy full, sonobuoy quick, autoscaling, lb, perf-bench, verify, recover, nop, iamcreate]."
description: "The test to run. Can currently be one of [sonobuoy full, sonobuoy quick, sonobuoy conformance, autoscaling, lb, perf-bench, verify, recover, malicious join, nop, upgrade, emergency ssh]."
required: true
sonobuoyTestSuiteCmd:
description: "The sonobuoy test suite to run."
required: false
buildBuddyApiKey:
description: "BuildBuddy API key for caching Bazel artifacts"
registry:
description: "Container registry to use"
required: true
githubToken:
description: "GitHub authorization token"
required: true
cosignPassword:
description: "The password for the cosign private key. Used for uploading to the config API"
cosignPrivateKey:
description: "The cosign private key. Used for uploading to the config API"
fetchMeasurements:
description: "Update measurements via the 'constellation config fetch-measurements' command."
default: "false"
azureSNPEnforcementPolicy:
description: "Enable security policy for the cluster."
internalLoadBalancer:
description: "Enable internal load balancer for the cluster."
clusterCreation:
description: "How to create infrastructure for the e2e test. One of [cli,, terraform]."
default: "cli"
s3AccessKey:
description: "Access key for s3proxy"
s3SecretKey:
description: "Secret key for s3proxy"
marketplaceImageVersion:
description: "Marketplace OS image version. Used instead of osImage."
required: false
force:
description: "Set the force-flag on apply to ignore version mismatches."
required: false
encryptionSecret:
description: "The secret to use for decrypting the artifact."
required: true
openStackCloudsYaml:
description: "The contents of ~/.config/openstack/clouds.yaml"
required: false
stackitUat:
description: "The UAT for STACKIT"
required: false
stackitProjectID:
description: "The STACKIT project ID to deploy Constellation in."
required: false
outputs:
kubeconfig:
description: "The kubeconfig for the cluster."
value: ${{ steps.constellation-create.outputs.kubeconfig }}
namePrefix:
description: "The name prefix of the cloud resources used in the e2e test."
value: ${{ steps.create-prefix.outputs.prefix }}
runs:
using: "composite"
steps:
- name: Check input
if: (!contains(fromJson('["sonobuoy full", "sonobuoy quick", "autoscaling", "perf-bench", "verify", "lb", "recover", "nop", "iamcreate"]'), inputs.test))
if: (!contains(fromJson('["sonobuoy full", "sonobuoy quick", "sonobuoy conformance", "autoscaling", "perf-bench", "verify", "lb", "recover", "malicious join", "s3proxy", "nop", "upgrade", "emergency ssh"]'), inputs.test))
shell: bash
run: |
echo "::error::Invalid input for test field: ${{ inputs.test }}"
@ -103,18 +131,33 @@ runs:
exit 1
fi
- name: Validate verify input
if: inputs.test == 'verify'
shell: bash
run: |
if [[ "${{ inputs.cosignPassword }}" == '' || "${{ inputs.cosignPrivateKey }}" == '' ]]; then
echo "::error::e2e test verify requires cosignPassword and cosignPrivateKey to be set."
exit 1
fi
- name: Determine build target
id: determine-build-target
shell: bash
run: |
echo "hostOS=$(go env GOOS)" >> $GITHUB_OUTPUT
echo "hostArch=$(go env GOARCH)" >> $GITHUB_OUTPUT
echo "hostOS=$(go env GOOS)" | tee -a "$GITHUB_OUTPUT"
echo "hostArch=$(go env GOARCH)" | tee -a "$GITHUB_OUTPUT"
- name: Setup bazel
uses: ./.github/actions/setup_bazel
uses: ./.github/actions/setup_bazel_nix
with:
useCache: "true"
buildBuddyApiKey: ${{ inputs.buildBuddyApiKey }}
nixTools: terraform
- name: Log in to the Container registry
uses: ./.github/actions/container_registry_login
with:
registry: ${{ inputs.registry }}
username: ${{ github.actor }}
password: ${{ inputs.githubToken }}
- name: Build CLI
if: inputs.cliVersion == ''
@ -122,8 +165,9 @@ runs:
with:
targetOS: ${{ steps.determine-build-target.outputs.hostOS }}
targetArch: ${{ steps.determine-build-target.outputs.hostArch }}
enterpriseCLI: ${{ inputs.keepMeasurements }}
enterpriseCLI: true
outputPath: "build/constellation"
push: ${{ inputs.cliVersion == '' }}
- name: Download CLI
if: inputs.cliVersion != ''
@ -134,8 +178,28 @@ runs:
echo "$(pwd)" >> $GITHUB_PATH
export PATH="$PATH:$(pwd)"
constellation version
# Do not spam license server from pipeline
sudo sh -c 'echo "127.0.0.1 license.confidential.cloud" >> /etc/hosts'
- name: Build Terraform provider binary
if: inputs.clusterCreation == 'terraform' && inputs.cliVersion == ''
uses: ./.github/actions/build_tf_provider
with:
targetOS: ${{ steps.determine-build-target.outputs.hostOS }}
targetArch: ${{ steps.determine-build-target.outputs.hostArch }}
outputPath: "build/terraform-provider-constellation"
- name: Move Terraform provider binary
if: inputs.clusterCreation == 'terraform' && inputs.cliVersion == ''
shell: bash
run: |
bazel build //bazel/settings:tag
repository_root=$(git rev-parse --show-toplevel)
out_rel=$(bazel cquery --output=files //bazel/settings:tag)
build_version=$(cat "$(realpath "${repository_root}/${out_rel}")")
terraform_provider_dir="${HOME}/.terraform.d/plugins/registry.terraform.io/edgelesssys/constellation/${build_version#v}/${{ steps.determine-build-target.outputs.hostOS }}_${{ steps.determine-build-target.outputs.hostArch }}/"
mkdir -p "${terraform_provider_dir}"
mv build/terraform-provider-constellation "${terraform_provider_dir}/terraform-provider-constellation_${build_version}"
- name: Build the bootstrapper
id: build-bootstrapper
@ -155,66 +219,150 @@ runs:
targetOS: ${{ steps.determine-build-target.outputs.hostOS }}
targetArch: ${{ steps.determine-build-target.outputs.hostArch }}
- name: Login to GCP
- name: Login to GCP (IAM service account)
if: inputs.cloudProvider == 'gcp'
uses: ./.github/actions/login_gcp
with:
service_account: ${{ inputs.gcp_service_account }}
service_account: ${{ inputs.gcpIAMCreateServiceAccount }}
- name: Login to AWS
- name: Login to AWS (IAM role)
if: inputs.cloudProvider == 'aws'
uses: aws-actions/configure-aws-credentials@e1e17a757e536f70e52b5a12b2e8d1d1c60e04ef # v2.0.0
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2E
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2EIAM
aws-region: eu-central-1
# extend token expiry to 6 hours to ensure constellation can terminate
role-duration-seconds: 21600
- name: Create IAM configuration
- name: Login to Azure (IAM service principal)
if: inputs.cloudProvider == 'azure'
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureIAMCreateCredentials }}
- name: Login to OpenStack
if: inputs.cloudProvider == 'stackit'
uses: ./.github/actions/login_openstack
with:
clouds_yaml: ${{inputs.openStackCloudsYaml }}
- name: Login to STACKIT
if: inputs.cloudProvider == 'stackit'
uses: ./.github/actions/login_stackit
with:
serviceAccountToken: ${{ inputs.stackitUat }}
- name: Create prefix
id: create-prefix
shell: bash
run: |
uuid=$(uuidgen | tr "[:upper:]" "[:lower:]")
uuid=${uuid%%-*}
# GCP has a 6 character limit the additional uuid prefix since the full prefix length has a maximum of 24
if [[ ${{ inputs.cloudProvider }} == 'gcp' ]]; then
uuid=${uuid:0:6}
fi
echo "uuid=${uuid}" | tee -a $GITHUB_OUTPUT
echo "prefix=e2e-${{ github.run_id }}-${{ github.run_attempt }}-${uuid}" | tee -a $GITHUB_OUTPUT
- name: Pick a random Azure region
id: pick-az-region
uses: ./.github/actions/pick_azure_region
with:
attestationVariant: ${{ inputs.attestationVariant }}
- name: Create Constellation config and IAM
id: constellation-iam-create
if: inputs.test == 'iamcreate' && inputs.cloudProvider != 'azure' # skip for Azure, as the SP / MI does not have the required permissions
uses: ./.github/actions/constellation_iam_create
with:
cloudProvider: ${{ inputs.cloudProvider }}
awsZone: eu-central-1c
awsPrefix: e2e_${{ github.run_id }}_${{ github.run_attempt }}
azureRegion: northeurope
azureResourceGroup: e2e_${{ github.run_id }}_${{ github.run_attempt }}_rg
azureServicePrincipal: e2e_${{ github.run_id }}_${{ github.run_attempt }}_sp
attestationVariant: ${{ inputs.attestationVariant }}
namePrefix: ${{ steps.create-prefix.outputs.prefix }}
awsZone: ${{ inputs.regionZone || 'us-east-2c' }}
azureSubscriptionID: ${{ inputs.azureSubscriptionID }}
azureRegion: ${{ inputs.regionZone || steps.pick-az-region.outputs.region }}
gcpProjectID: ${{ inputs.gcpProject }}
gcpZone: europe-west3-b
gcpServiceAccountID: e2e-${{ github.run_id }}-${{ github.run_attempt }}-sa
gcpZone: ${{ inputs.regionZone || 'europe-west3-b' }}
stackitZone: ${{ inputs.regionZone || 'eu01-2' }}
stackitProjectID: ${{ inputs.stackitProjectID }}
kubernetesVersion: ${{ inputs.kubernetesVersion }}
additionalTags: "workflow=${{ github.run_id }}"
- name: Login to GCP (Cluster service account)
if: inputs.cloudProvider == 'gcp'
uses: ./.github/actions/login_gcp
with:
service_account: ${{ inputs.gcpClusterCreateServiceAccount }}
- name: Login to AWS (Cluster role)
if: inputs.cloudProvider == 'aws'
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubActionsE2ECluster
aws-region: eu-central-1
# extend token expiry to 6 hours to ensure constellation can terminate
role-duration-seconds: 21600
- name: Login to Azure (Cluster service principal)
if: inputs.cloudProvider == 'azure'
uses: ./.github/actions/login_azure
with:
azure_credentials: ${{ inputs.azureClusterCreateCredentials }}
- name: Create cluster
id: constellation-create
uses: ./.github/actions/constellation_create
with:
cloudProvider: ${{ inputs.cloudProvider }}
gcpProject: ${{ inputs.gcpProject }}
gcpClusterServiceAccountKey: ${{ inputs.gcpClusterServiceAccountKey }}
attestationVariant: ${{ inputs.attestationVariant }}
workerNodesCount: ${{ inputs.workerNodesCount }}
controlNodesCount: ${{ inputs.controlNodesCount }}
machineType: ${{ inputs.machineType }}
osImage: ${{ inputs.osImage }}
isDebugImage: ${{ inputs.isDebugImage }}
artifactNameSuffix: ${{ steps.create-prefix.outputs.prefix }}
fetchMeasurements: ${{ inputs.fetchMeasurements }}
cliVersion: ${{ inputs.cliVersion }}
azureSNPEnforcementPolicy: ${{ inputs.azureSNPEnforcementPolicy }}
azureIAMCreateCredentials: ${{ inputs.azureIAMCreateCredentials }}
azureClusterCreateCredentials: ${{ inputs.azureClusterCreateCredentials }}
kubernetesVersion: ${{ inputs.kubernetesVersion }}
keepMeasurements: ${{ inputs.keepMeasurements }}
azureSubscription: ${{ inputs.azureSubscription }}
azureTenant: ${{ inputs.azureTenant }}
azureClientID: ${{ inputs.azureClientID }}
azureClientSecret: ${{ inputs.azureClientSecret }}
azureUserAssignedIdentity: ${{ inputs.azureUserAssignedIdentity }}
azureResourceGroup: ${{ inputs.azureResourceGroup }}
existingConfig: ${{ steps.constellation-iam-create.outputs.existingConfig }}
refStream: ${{ inputs.refStream }}
internalLoadBalancer: ${{ inputs.internalLoadBalancer }}
test: ${{ inputs.test }}
clusterCreation: ${{ inputs.clusterCreation }}
marketplaceImageVersion: ${{ inputs.marketplaceImageVersion }}
force: ${{ inputs.force }}
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Deploy log- and metrics-collection (Kubernetes)
id: deploy-logcollection
if: inputs.isDebugImage == 'false'
uses: ./.github/actions/deploy_logcollection
with:
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
opensearchUser: ${{ inputs.awsOpenSearchUsers }}
opensearchPwd: ${{ inputs.awsOpenSearchPwd }}
test: ${{ inputs.test }}
provider: ${{ inputs.cloudProvider }}
attestationVariant: ${{ inputs.attestationVariant }}
isDebugImage: ${{ inputs.isDebugImage }}
kubernetesVersion: ${{ inputs.kubernetesVersion }}
refStream: ${{ inputs.refStream }}
clusterCreation: ${{ inputs.clusterCreation }}
#
# Test payloads
#
- name: Nop test payload
if: inputs.test == 'nop'
if: (inputs.test == 'nop') || (inputs.test == 'upgrade')
shell: bash
run: echo "::warning::This test has a nop payload. It doesn't run any tests."
run: |
echo "This test has a nop payload. It doesn't run any tests."
echo "Sleeping for 30 seconds to allow logs to propagate to the log collection service."
sleep 30
- name: Run sonobuoy quick test
if: inputs.test == 'sonobuoy quick'
@ -222,16 +370,27 @@ runs:
with:
sonobuoyTestSuiteCmd: "--mode quick"
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
cloudProvider: ${{ inputs.cloudProvider }}
artifactNameSuffix: ${{ steps.create-prefix.outputs.prefix }}
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Run sonobuoy full test
if: inputs.test == 'sonobuoy full'
uses: ./.github/actions/e2e_sonobuoy
with:
# TODO: Remove E2E_SKIP once AB#2174 is resolved
sonobuoyTestSuiteCmd: '--plugin e2e --plugin-env e2e.E2E_FOCUS="\[Conformance\]" --plugin-env e2e.E2E_SKIP="for service with type clusterIP|HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol" --plugin https://raw.githubusercontent.com/vmware-tanzu/sonobuoy-plugins/master/cis-benchmarks/kube-bench-plugin.yaml --plugin https://raw.githubusercontent.com/vmware-tanzu/sonobuoy-plugins/master/cis-benchmarks/kube-bench-master-plugin.yaml'
# TODO(3u13r): Remove E2E_SKIP once AB#2174 is resolved
sonobuoyTestSuiteCmd: '--plugin e2e --plugin-env e2e.E2E_FOCUS="\[Conformance\]" --plugin-env e2e.E2E_SKIP="for service with type clusterIP|HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol|Services should serve endpoints on same port and different protocols" --plugin https://raw.githubusercontent.com/vmware-tanzu/sonobuoy-plugins/102cd62a4091f80a795189f64ccc20738f931ef0/cis-benchmarks/kube-bench-plugin.yaml --plugin https://raw.githubusercontent.com/vmware-tanzu/sonobuoy-plugins/102cd62a4091f80a795189f64ccc20738f931ef0/cis-benchmarks/kube-bench-master-plugin.yaml'
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
cloudProvider: ${{ inputs.cloudProvider }}
artifactNameSuffix: ${{ steps.create-prefix.outputs.prefix }}
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Run sonobuoy conformance
if: inputs.test == 'sonobuoy conformance'
uses: ./.github/actions/e2e_sonobuoy
with:
sonobuoyTestSuiteCmd: "--plugin e2e --mode certified-conformance"
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
artifactNameSuffix: ${{ steps.create-prefix.outputs.prefix }}
encryptionSecret: ${{ inputs.encryptionSecret }}
- name: Run autoscaling test
if: inputs.test == 'autoscaling'
@ -244,23 +403,30 @@ runs:
uses: ./.github/actions/e2e_lb
with:
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
cloudProvider: ${{ inputs.cloudProvider }}
- name: Run Performance Benchmark
if: inputs.test == 'perf-bench'
uses: ./.github/actions/e2e_benchmark
with:
cloudProvider: ${{ inputs.cloudProvider }}
attestationVariant: ${{ inputs.attestationVariant }}
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
awsOpenSearchDomain: ${{ inputs.awsOpenSearchDomain }}
awsOpenSearchUsers: ${{ inputs.awsOpenSearchUsers }}
awsOpenSearchPwd: ${{ inputs.awsOpenSearchPwd }}
encryptionSecret: ${{ inputs.encryptionSecret }}
artifactNameSuffix: ${{ steps.create-prefix.outputs.prefix }}
- name: Run constellation verify test
if: inputs.test == 'verify'
uses: ./.github/actions/e2e_verify
with:
cloudProvider: ${{ inputs.cloudProvider }}
attestationVariant: ${{ inputs.attestationVariant }}
osImage: ${{ steps.constellation-create.outputs.osImageUsed }}
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
cosignPassword: ${{ inputs.cosignPassword }}
cosignPrivateKey: ${{ inputs.cosignPrivateKey }}
- name: Run recover test
if: inputs.test == 'recover'
@ -268,4 +434,27 @@ runs:
with:
controlNodesCount: ${{ inputs.controlNodesCount }}
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
masterSecret: ${{ steps.constellation-create.outputs.masterSecret }}
- name: Run malicious join test
if: inputs.test == 'malicious join'
uses: ./.github/actions/e2e_malicious_join
with:
cloudProvider: ${{ inputs.cloudProvider }}
attestationVariant: ${{ inputs.attestationVariant }}
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
githubToken: ${{ inputs.githubToken }}
- name: Run s3proxy e2e test
if: inputs.test == 's3proxy'
uses: ./.github/actions/e2e_s3proxy
with:
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}
s3AccessKey: ${{ inputs.s3AccessKey }}
s3SecretKey: ${{ inputs.s3SecretKey }}
githubToken: ${{ inputs.githubToken }}
- name: Run emergency ssh test
if: inputs.test == 'emergency ssh'
uses: ./.github/actions/e2e_emergency_ssh
with:
kubeconfig: ${{ steps.constellation-create.outputs.kubeconfig }}

View File

@ -1,24 +0,0 @@
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"themeColor": "FF5733",
"summary": "E2E Job Failed",
"sections": [{
"activityTitle": "E2E Job Failed",
"activitySubtitle": "${TEAMS_JOB_NAME}",
"activityImage": "https://miro.medium.com/max/552/1*G7s61tFPaLI9JRxWYpRNLw.png",
"facts": [{
"name": "Status",
"value": "Error"
}],
"markdown": true
}],
"potentialAction": [{
"@type": "OpenUri",
"name": "Go To Failed Action",
"targets": [{
"os": "default",
"uri": "https://github.com/edgelesssys/constellation/actions/runs/${TEAMS_RUN_ID}"
}]
}]
}

View File

@ -5,39 +5,107 @@ inputs:
osImage:
description: "The OS image used in the cluster."
required: true
cloudProvider:
description: "The cloud provider used in the cluster."
attestationVariant:
description: "The attestation variant used in the cluster."
required: true
kubeconfig:
description: "The kubeconfig file for the cluster."
required: true
cosignPassword:
required: true
description: "The password for the cosign private key."
cosignPrivateKey:
required: true
description: "The cosign private key."
runs:
using: "composite"
steps:
- name: Clear current measurements
shell: bash
run: |
yq -i 'del(.provider.${{ inputs.cloudProvider }}.measurements)' constellation-conf.yaml
- name: Expand version path
id: expand-version
uses: ./.github/actions/shortname
with:
shortname: ${{ inputs.osImage }}
- name: Fetch & write measurements
- name: Constellation fetch measurements
shell: bash
run: |
ref=${{ steps.expand-version.outputs.ref }}
stream=${{ steps.expand-version.outputs.stream }}
version=${{ steps.expand-version.outputs.version }}
verPath="ref/${ref}/stream/${stream}/${version}"
MEASUREMENTS=$(curl -fsSL https://cdn.confidential.cloud/constellation/v1/${verPath}/image/csp/${{ inputs.cloudProvider }}/measurements.json | jq '.measurements' -r)
for key in $(echo $MEASUREMENTS | jq 'keys[]' -r); do
echo Updating $key to $(echo $MEASUREMENTS | jq ".\"$key\"" -r)
yq -i ".provider.${{ inputs.cloudProvider }}.measurements.[$key] = $(echo $MEASUREMENTS | jq ".\"$key\"")" constellation-conf.yaml
done
yq -i '.provider.${{ inputs.cloudProvider }}.measurements |= array_to_map' constellation-conf.yaml
cat constellation-conf.yaml
if [[ ${{ steps.expand-version.outputs.stream }} == "debug" ]]
then
constellation config fetch-measurements --insecure
else
constellation config fetch-measurements
fi
- name: Constellation verify
shell: bash
run: constellation verify --cluster-id $(jq -r ".clusterID" constellation-id.json) --force
run: constellation verify --cluster-id $(yq -r ".clusterValues.clusterID" constellation-state.yaml)
- name: Verify all nodes
shell: bash
env:
KUBECONFIG: ${{ inputs.kubeconfig }}
run: |
clusterID=$(yq -r ".clusterValues.clusterID" constellation-state.yaml)
nodes=$(kubectl get nodes -o json | jq -r ".items[].metadata.name")
for node in $nodes ; do
verificationPod=$(kubectl get pods --field-selector spec.nodeName=${node} -n kube-system | grep "verification-service" | cut -d' ' -f1)
mapfile -t verificationPod <<< "$verificationPod"
if [[ ${#verificationPod[@]} -ne 1 ]]; then
echo "Expected 1 verification pod for node ${node}, found ${#verificationPodArray[@]}"
exit 1
fi
echo "Verifying pod ${verificationPod} on node ${node}"
kubectl wait -n kube-system "pod/${verificationPod}" --for=condition=ready --timeout=5m
kubectl port-forward -n kube-system "pods/${verificationPod}" 9090:9090 &
forwarderPID=$!
sleep 5
case "${{ inputs.attestationVariant }}"
in
"azure-sev-snp"|"azure-tdx"|"aws-sev-snp"|"gcp-sev-snp")
echo "Extracting TCB versions for API update"
constellation verify --cluster-id "${clusterID}" --node-endpoint localhost:9090 -o json > "attestation-report-${node}.json"
;;
*)
constellation verify --cluster-id "${clusterID}" --node-endpoint localhost:9090
;;
esac
kill $forwarderPID
done
- name: Login to AWS
if: github.ref_name == 'main'
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GitHubConstellationImagePipeline
aws-region: eu-central-1
- name: Upload extracted TCBs
if: github.ref_name == 'main' && (inputs.attestationVariant == 'azure-sev-snp' || inputs.attestationVariant == 'azure-tdx' || inputs.attestationVariant == 'aws-sev-snp' || inputs.attestationVariant == 'gcp-sev-snp')
shell: bash
env:
COSIGN_PASSWORD: ${{ inputs.cosignPassword }}
COSIGN_PRIVATE_KEY: ${{ inputs.cosignPrivateKey }}
run: |
reports=attestation-report-*.json
# bazel run changes the working directory
# convert the relative paths to absolute paths to avoid issues
absolute_reports=""
for report in ${reports}; do
absolute_reports="${absolute_reports} $(realpath "${report}")"
done
report=$(bazel run //internal/api/attestationconfigapi/cli -- compare ${{ inputs.attestationVariant }} ${absolute_reports})
path=$(realpath "${report}")
cat "${path}"
bazel run //internal/api/attestationconfigapi/cli -- upload ${{ inputs.attestationVariant }} attestation-report "${path}"

View File

@ -0,0 +1,78 @@
name: Find latest image
description: 'Find the latest image reference for a given ref/stream.'
inputs:
git-ref:
description: 'Git ref to checkout.'
imageVersion:
description: 'Image version to use. If set, no image will be searched for and the specified image will be returned.'
ref:
description: 'The ref the image was built on. (e.g. "main")'
default: 'main'
stream:
description: 'The publication stream of the image. (e.g. "debug")'
default: 'debug'
outputs:
image:
description: "Image reference to be used in the cluster."
value: ${{ steps.find-latest-image.outputs.output }}${{ steps.use-given-image.outputs.output }}
isDebugImage:
description: "Whether the image is a debug image."
value: ${{ steps.isDebugImage.outputs.isDebugImage }}
runs:
using: 'composite'
steps:
- name: Checkout head
if: inputs.imageVersion == '' && inputs.git-ref == 'head'
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }}
- name: Checkout ref
if: inputs.imageVersion == '' && inputs.git-ref != 'head'
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ inputs.git-ref }}
- name: Login to AWS
if: inputs.imageVersion == ''
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubConstellationVersionsAPIRead
aws-region: eu-central-1
- uses: ./.github/actions/setup_bazel_nix
- name: Find latest image
id: find-latest-image
if: inputs.imageVersion == ''
uses: ./.github/actions/versionsapi
with:
command: latest
ref: ${{ inputs.ref }}
stream: ${{ inputs.stream }}
- name: Use given image
id: use-given-image
if: inputs.imageVersion != ''
shell: bash
run: |
echo "output=${{ inputs.imageVersion }}" | tee -a "$GITHUB_OUTPUT"
- name: Is debug image?
id: isDebugImage
shell: bash
run: |
case "${{ inputs.imageVersion }}" in
"")
echo "isDebugImage=true" | tee -a "$GITHUB_OUTPUT"
;;
*"/stream/debug/"*)
echo "isDebugImage=true" | tee -a "$GITHUB_OUTPUT"
;;
*)
echo "isDebugImage=false" | tee -a "$GITHUB_OUTPUT"
;;
esac

View File

@ -0,0 +1,24 @@
name: Find GCP CCM versions that need to be build
description: Find GCP CCM versions that need to be build
inputs:
path:
description: "Path to the GCP CCM repository"
required: true
outputs:
versions:
description: "Versions that need to be build"
value: ${{ steps.find-versions.outputs.versions }}
runs:
using: "composite"
steps:
- name: Find versions that need to be build
id: find-versions
shell: bash
run: |
script=$(realpath .github/actions/gcpccm_vers_to_build/findvers.sh)
pushd "${{ inputs.path }}"
versions=$(${script})
echo "versions=${versions}" | tee -a "$GITHUB_OUTPUT"

View File

@ -0,0 +1,85 @@
#!/usr/bin/env bash
set -euo pipefail
function info() {
echo "$@" 1>&2
}
function error() {
echo "::err::$*"
exit 1
}
allCCMVersions=$(git tag | grep ccm || test $? = 1)
if [[ -z ${allCCMVersions} ]]; then
error "No CCM tags found in git"
fi
allMajorVersions=()
for ver in ${allCCMVersions}; do
major=${ver#ccm/v} # remove "ccm/v" prefix
major=${major%%.*} # remove everything after the first dot
if [[ ${major} -eq 0 ]]; then
continue # skip major version 0
fi
# Check if this major version is already in the list.
for existingMajor in "${allMajorVersions[@]}"; do
if [[ ${existingMajor} -eq ${major} ]]; then
continue 2
fi
done
info "Found major version ${major}"
allMajorVersions+=("${major}")
done
if [[ ${#allMajorVersions[@]} -eq 0 ]]; then
error "No major versions found in CCM tags"
fi
existingContainerVersions=$(crane ls "ghcr.io/edgelesssys/cloud-provider-gcp")
if [[ -z ${existingContainerVersions} ]]; then
info "No existing container versions found"
fi
versionsToBuild=()
for major in "${allMajorVersions[@]}"; do
# Get the latest released version with this major version.
latest=$(echo "${allCCMVersions[@]}" | grep "${major}" | sort -V | tail -n 1)
latest=${latest#ccm/} # remove "ccm/" prefix, keep v
if [[ -z ${latest} ]]; then
error "Could not determine latest version with major ${major}"
fi
info "Latest ${major} version is ${latest}"
# Find the latest version with this major version.
majorVerRegexp="v${major}.[0-9]+.[0-9]+"
allExistingWithMajor=$(grep -E "${majorVerRegexp}" <<< "${existingContainerVersions}" || test $? = 1)
latestExistingWithMinor=$(echo "${allExistingWithMajor}" | sort -V | tail -n 1)
# If there is no existing version with this major version, build the latest released version.
if [[ -z ${latestExistingWithMinor} ]]; then
info "No existing version with major ${major}, adding ${latest} to versionsToBuild"
versionsToBuild+=("${latest}")
continue
fi
info "Latest existing version with major ${major} is ${latestExistingWithMinor}"
newerVer=$(echo -e "${latest}\n${latestExistingWithMinor}" | sort -V | tail -n 1)
if [[ ${newerVer} == "${latestExistingWithMinor}" ]]; then
info "Existing version ${latestExistingWithMinor} is up to date, skipping"
continue
fi
info "Newer version ${latest} is available, existing version is ${latestExistingWithMinor}."
info "Adding ${latest} to versionsToBuild"
versionsToBuild+=("${latest}")
done
# Print one elem per line | quote elems | create array | remove empty elems and print compact.
printf '%s\n' "${versionsToBuild[@]}" | jq -R | jq -s | jq -c 'map(select(length > 0))'

View File

@ -0,0 +1,64 @@
name: Create a GitHub issue
description: "Create an issue on GitHub, and optionally add it to a project board."
inputs:
title:
description: "The title of the issue."
required: true
owner:
description: "The owner of the repository to create the issue in."
required: false
default: ${{ github.repository_owner }}
repo:
description: "The repository to create the issue in."
required: false
default: ${{ github.repository }}
token:
description: "The GitHub token to use to authenticate."
required: false
default: ${{ github.token }}
body:
description: "The body of the issue."
required: false
body-file:
description: "The absolute path to a file containing the body of the issue."
required: false
assignee:
description: "The GitHub username to assign the issue to."
required: false
label:
description: "A comma-separated list of labels to add to the issue."
required: false
milestone:
description: "The milestone to add the issue to."
required: false
project:
description: "Number of the project to add the issue to."
required: false
template:
description: "The template to use for the issue."
required: false
fields:
description: "A YAML or JSON object containing the fields to use for the issue."
required: false
outputs:
issue-url:
description: "The URL of the created issue."
value: ${{ steps.run.outputs.issue-url }}
runs:
using: "composite"
steps:
- name: Run create_issue.sh
id: run
shell: bash
env:
GH_TOKEN: ${{ inputs.token }}
run: |
set -x
cat << EOF | tee inputs.json
${{ toJSON(inputs) }}
EOF
out=$(./.github/actions/gh_create_issue/create_issue.sh inputs.json)
echo "issue-url=${out}" | tee -a "$GITHUB_OUTPUT"

View File

@ -0,0 +1,254 @@
#!/usr/bin/env bash
set -euo pipefail
function debug() {
echo "DEBUG: $*" >&2
}
function warn() {
echo "WARN: $*" >&2
}
function inputs() {
name="${1}"
local val
val=$(jq -r ".\"${name}\"" "${inputFile}")
if [[ ${val} == "null" ]]; then
warn "Input ${name} not found in ${inputFile}"
return
fi
echo "${val}"
}
function flagsFromInput() {
flagNames=("${@}")
for name in "${flagNames[@]}"; do
val=$(inputs "${name}")
if [[ -n ${val} ]]; then
echo "--${name}=${val}"
fi
done
}
function createIssue() {
flags=(
"assignee"
"body"
"body-file"
"label"
"milestone"
"project"
"template"
"title"
)
readarray -t flags <<< "$(flagsFromInput "${flags[@]}")"
flags+=("--repo=$(inputs owner)/$(inputs repo)")
debug gh issue create "${flags[@]}"
gh issue create "${flags[@]}"
}
function listProjects() {
flags=(
"owner"
)
readarray -t flags <<< "$(flagsFromInput "${flags[@]}")"
flags+=("--format=json")
debug gh project list "${flags[@]}"
gh project list "${flags[@]}" >> projects.json
}
function findProjectID() {
project=$(inputs "project")
out="$(
jq -r \
--arg project "${project}" \
'.projects[]
| select(.title == $project)
| .id' \
projects.json
)"
debug "Project ID: ${out}"
echo "${out}"
}
function findProjectNo() {
project=$(inputs "project")
out="$(
jq -r \
--arg project "${project}" \
'.projects[]
| select(.title == $project)
| .number' \
projects.json
)"
debug "Project Number: ${out}"
echo "${out}"
}
function listItems() {
local projectNo="${1}"
flags=(
"owner"
)
readarray -t flags <<< "$(flagsFromInput "${flags[@]}")"
flags+=("--limit=1000")
flags+=("--format=json")
debug gh project item-list "${flags[@]}" "${projectNo}"
gh project item-list "${flags[@]}" "${projectNo}" >> issues.json
}
function findIssueItemID() {
local issueURL="${1}"
out="$(
jq -r \
--arg issueURL "${issueURL}" \
'.items[]
| select(.content.url == $issueURL)
| .id' \
issues.json
)"
debug "Issue Item ID: ${out}"
echo "${out}"
}
function listFields() {
local projectNo="${1}"
flags=(
"owner"
)
readarray -t flags <<< "$(flagsFromInput "${flags[@]}")"
flags+=("--limit=1000")
flags+=("--format=json")
debug gh project field-list "${flags[@]}" "${projectNo}"
gh project field-list "${flags[@]}" "${projectNo}" >> fields.json
}
function findFieldID() {
local fieldName="${1}"
out="$(
jq -r \
--arg fieldName "${fieldName}" \
'.fields[]
| select(.name == $fieldName)
| .id' \
fields.json
)"
debug "Field ID of '${fieldName}': ${out}"
echo "${out}"
}
function findSelectFieldID() {
local fieldName="${1}"
local fieldValue="${2}"
out="$(
jq -r \
--arg fieldName "${fieldName}" \
--arg fieldValue "${fieldValue}" \
'.fields[]
| select(.name == $fieldName)
| .options[]
| select(.name == $fieldValue)
| .id' \
fields.json
)"
debug "Field ID of '${fieldName}': ${out}"
echo "${out}"
}
function findFieldType() {
local fieldName="${1}"
out="$(
jq -r \
--arg fieldName "${fieldName}" \
'.fields[]
| select(.name == $fieldName)
| .type' \
fields.json
)"
debug "Field type of '${fieldName}': ${out}"
echo "${out}"
}
function editItem() {
local projectID="${1}"
local itemID="${2}"
local id="${3}"
local value="${4}"
if [[ -z ${value} ]]; then
debug skipping empty value
return
fi
flags=(
"--project-id=${projectID}"
"--id=${itemID}"
"--field-id=${id}"
"--text=${value}"
)
debug gh project item-edit "${flags[@]}"
gh project item-edit "${flags[@]}" > /dev/null
}
function setFields() {
local projectID="${1}"
local itemID="${2}"
fieldsLen="$(jq -r '.fields' "${inputFile}" | yq 'length')"
debug "Number of fields in input: ${fieldsLen}"
for ((i = 0; i < fieldsLen; i++)); do
name="$(jq -r '.fields' "${inputFile}" |
yq "to_entries | .[${i}].key")"
value="$(jq -r '.fields' "${inputFile}" |
yq "to_entries | .[${i}].value")"
debug "Field ${i}: ${name} = ${value}"
type=$(findFieldType "${name}")
case "${type}" in
"ProjectV2Field")
id=$(findFieldID "${name}")
;;
"ProjectV2SingleSelectField")
id=$(findSelectFieldID "${name}" "${value}")
;;
*)
warn "Unknown field type: ${type}"
return 1
;;
esac
editItem "${projectID}" "${itemID}" "${id}" "${value}"
done
}
function main() {
inputFile="$(realpath "${1}")"
workdir=$(mktemp -d)
pushd "${workdir}" > /dev/null
trap 'debug "not cleaning up, working directory at: ${workdir}"' ERR
issueURL=$(createIssue)
echo "${issueURL}"
project=$(inputs "project")
if [[ -z ${project} ]]; then
return
fi
listProjects
projectNo=$(findProjectNo)
projectID=$(findProjectID)
listItems "${projectNo}"
issueItemID=$(findIssueItemID "${issueURL}")
listFields "${projectNo}"
setFields "${projectID}" "${issueItemID}"
popd > /dev/null
rm -rf "${workdir}"
}
main "${@}"

View File

@ -1,26 +0,0 @@
name: Install Docgen
description: |
Install Docgen
runs:
using: "composite"
steps:
- name: Checkout talos
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
with:
fetch-depth: 0
repository: "siderolabs/talos"
ref: "v1.3.1"
path: talos
# This is required to be able to build docgen
- name: Remove go.work
shell: bash
working-directory: talos
run: rm go.work*
- name: Install Docgen
shell: bash
working-directory: talos/hack/docgen
run: |
go build -o docgen .
mv docgen /usr/local/bin

View File

@ -1,24 +0,0 @@
name: Install operator-sdk
description: |
Installs the operator-sdk binary.
inputs:
version:
description: "Version of the operator-sdk to install"
required: true
runs:
using: "composite"
steps:
- name: Install operator-sdk
shell: bash
run: |
export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac)
export OS=$(uname | awk '{print tolower($0)}')
export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/${{ inputs.version }}
curl -fsSLO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
gpg --keyserver keyserver.ubuntu.com --recv-keys 052996E2A20B5C7E
curl -fsSLO ${OPERATOR_SDK_DL_URL}/checksums.txt
curl -fsSLO ${OPERATOR_SDK_DL_URL}/checksums.txt.asc
gpg -u "Operator SDK (release) <cncf-operator-sdk@cncf.io>" --verify checksums.txt.asc
grep operator-sdk_${OS}_${ARCH} checksums.txt | sha256sum -c -
chmod +x operator-sdk_${OS}_${ARCH} && sudo mv operator-sdk_${OS}_${ARCH} /usr/local/bin/operator-sdk
rm checksums.txt checksums.txt.asc

View File

@ -10,6 +10,6 @@ runs:
# As described at:
# https://github.com/Azure/login#configure-deployment-credentials
- name: Login to Azure
uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.7
uses: azure/login@a65d910e8af852a8061c627c456678983e180302 # v2.2.0
with:
creds: ${{ inputs.azure_credentials }}

View File

@ -7,14 +7,24 @@ inputs:
runs:
using: "composite"
steps:
# As described at:
# https://github.com/google-github-actions/setup-gcloud#service-account-key-json
- name: Clean env to prevent warnings
shell: bash
run: |
echo "CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=" >> "$GITHUB_ENV"
echo "GOOGLE_APPLICATION_CREDENTIALS=" >> "$GITHUB_ENV"
echo "GOOGLE_GHA_CREDS_PATH=" >> "$GITHUB_ENV"
echo "CLOUDSDK_CORE_PROJECT=" >> "$GITHUB_ENV"
echo "CLOUDSDK_PROJECT=" >> "$GITHUB_ENV"
echo "GCLOUD_PROJECT=" >> "$GITHUB_ENV"
echo "GCP_PROJECT=" >> "$GITHUB_ENV"
echo "GOOGLE_CLOUD_PROJECT=" >> "$GITHUB_ENV"
- name: Authorize GCP access
uses: google-github-actions/auth@ef5d53e30bbcd8d0836f4288f5e50ff3e086997d # v1.0.0
uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8
with:
workload_identity_provider: projects/796962942582/locations/global/workloadIdentityPools/constellation-ci-pool/providers/constellation-ci-provider
workload_identity_provider: projects/1052692473304/locations/global/workloadIdentityPools/constellation-ci-pool/providers/constellation-ci-provider
service_account: ${{ inputs.service_account }}
# Even if preinstalled in Github Actions runner image, this setup does some magic authentication required for gsutil.
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@62d4898025f6041e16b1068643bfc5a696863587 # v1.1.0
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4

View File

@ -0,0 +1,16 @@
name: OpenStack login
description: "Login to OpenStack"
inputs:
clouds_yaml:
description: "Credentials authorized to create Constellation on OpenStack."
required: true
runs:
using: "composite"
steps:
- name: Login to OpenStack
env:
CLOUDS_YAML: ${{ inputs.clouds_yaml }}
shell: bash
run: |
mkdir -p ~/.config/openstack
echo "${CLOUDS_YAML}" > ~/.config/openstack/clouds.yaml

View File

@ -0,0 +1,16 @@
name: STACKIT login
description: "Login to STACKIT"
inputs:
serviceAccountToken:
description: "Credentials authorized to create Constellation on STACKIT."
required: true
runs:
using: "composite"
steps:
- name: Login to STACKIT
env:
UAT: ${{ inputs.serviceAccountToken }}
shell: bash
run: |
mkdir -p ~/.stackit
echo "${UAT}" > ~/.stackit/credentials.json

View File

@ -0,0 +1,113 @@
name: notify e2e failure
description: "Post a failure message to project board and teams"
inputs:
projectWriteToken:
description: "Token to write to the project board"
required: true
test:
description: "Test name"
required: true
provider:
description: "CSP"
required: true
attestationVariant:
description: "Attestation variant"
required: false
refStream:
description: "RefStream of the run"
required: false
kubernetesVersion:
description: "Kubernetes version"
required: false
clusterCreation:
description: "How the infrastructure for the e2e test was created. One of [cli, terraform]."
required: false
runs:
using: "composite"
steps:
- name: Pick assignee
id: pick-assignee
uses: ./.github/actions/pick_assignee
- name: Get the current date
id: date
shell: bash
run: echo "CURRENT_DATE=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_ENV
- name: Create body template
id: body-template
shell: bash
run: |
# TODO(katexochen): add job number when possible
jobURL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
# OpenSearch instance details
instance=search-e2e-logs-y46renozy42lcojbvrt3qq7csm
region=eu-central-1
# UUID of index "logs-*"
a="(metadata:(indexPattern:'9004ee20-77cc-11ee-b137-27c60b9ad4a4',view:discover))"
# Default window: last 7 days
g='(time:(from:now-7d,to:now))'
# Query construction
# Omit empty fields since OpenSearch will otherwise only display results where the field is empty
queryGen() {
key=$1
val=$2
if [[ -n "${val}" ]]; then
printf "(query:(match_phrase:(%s:'%s')))," "${key}" "${val}"
fi
}
e2eTestPayload=$(echo "${{ inputs.test }}" | jq -R -r @uri)
q=$(echo "(filters:!(
$(queryGen cloud.provider "${{ inputs.provider }}")
$(queryGen metadata.github.ref-stream "${{ inputs.refStream }}")
$(queryGen metadata.github.kubernetes-version "${{ inputs.kubernetesVersion }}")
$(queryGen metadata.github.attestation-variant "${{ inputs.attestationVariant }}")
$(queryGen metadata.github.cluster-creation "${{ inputs.clusterCreation }}")
$(queryGen metadata.github.e2e-test-payload "${e2eTestPayload}")
(query:(match_phrase:(metadata.github.run-id:${{ github.run_id }})))
))" | tr -d "\t\n ")
# URL construction
opensearchURL="https://${instance}.${region}.es.amazonaws.com/_dashboards/app/data-explorer/discover/#?_a=${a}&_q=${q}&_g=${g}"
cat << EOF > header.md
## Metadata
* [Job URL](${jobURL})
* [OpenSearch URL](${opensearchURL})
EOF
cat header.md .github/failure_project_template.md > body.md
echo "BODY_PATH=$(pwd)/body.md" >> $GITHUB_ENV
- uses: ./.github/actions/gh_create_issue
id: gh_create_issue
with:
title: "${{ env.CURRENT_DATE }}"
body-file: ${{ env.BODY_PATH }}
repo: issues
label: "e2e failure"
assignee: ${{ steps.pick-assignee.outputs.assignee }}
project: Constellation bugs
fields: |
workflow: ${{ github.workflow }}
kubernetesVersion: ${{ inputs.kubernetesVersion }}
cloudProvider: ${{ inputs.provider }}
attestationVariant: ${{ inputs.attestationVariant }}
clusterCreation: ${{ inputs.clusterCreation }}
test: ${{ inputs.test }}
refStream: ${{ inputs.refStream }}
token: ${{ inputs.projectWriteToken }}
- name: Issue URL ${{ steps.gh_create_issue.outputs.issue-url }}
shell: bash
run: echo ${{ steps.gh_create_issue.outputs.issue-url }}

View File

@ -0,0 +1,19 @@
name: Notify STACKIT
description: "Notify STACKIT about test failure"
inputs:
slackToken:
description: "Slack access token."
required: true
runs:
using: "composite"
steps:
- name: Notify STACKIT
env:
SLACK_TOKEN: ${{ inputs.slackToken }}
shell: bash
run: |
curl -X POST \
-H "Authorization: Bearer $SLACK_TOKEN" \
-H "Content-type: application/json; charset=utf-8" \
-d "{\"channel\":\"C0827BT59SM\",\"text\":\"E2E test failed: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID\"}" \
https://slack.com/api/chat.postMessage

27
.github/actions/notify_teams/README.md vendored Normal file
View File

@ -0,0 +1,27 @@
# notify Teams action
This action is used to send a message to our Teams channel in case of a failure in the CI/CD pipeline.
The action will automatically choose an engineer to assign to the issue and tag them in the message.
Engineers are identified by their GitHub username and bound to a Microsoft Teams ID in `.attachments[0].content.msteams.entities`.
To add a new engineer, add a new entry to the entity list in the format:
```json
{
"type": "mention",
"text": "${github_username}",
"mentioned": {
"id": "${msteams_id}",
"name": "${name}"
}
}
```
Where `${github_username}` is the GitHub username of the engineer, `${msteams_id}` is the Microsoft Teams ID of the engineer, and `${name}` is the name of the engineer.
To find the Microsoft Teams ID use the following command:
```bash
az ad user show --id ${email} --query id
```
Where `${email}` is the email address of the engineer.

52
.github/actions/notify_teams/action.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: notify teams
description: "Post a message to Teams"
inputs:
teamsWebhookURI:
description: "URI to send a message to the Teams channel"
required: true
title:
description: "Title of the Teams notification"
required: true
assignee:
description: "Assignee of the message"
required: true
additionalFields:
description: "Additional fields to add to the Teams message (JSON formatted)"
default: "[]"
additionalButtons:
description: "Additional Buttons to add to the Teams message (JSON formatted)"
default: "[]"
runs:
using: "composite"
steps:
- name: Notify Teams channel
continue-on-error: true
shell: bash
run: |
cp .github/actions/notify_teams/teams_payload_template.json teams_payload.json
# Add workflow name to the notification
yq -oj -iP '.attachments[0].content.body[0].columns[1].items[0].text = "${{ inputs.title }}"' teams_payload.json
yq -oj -iP '.attachments[0].content.body[0].columns[1].items[1].text = "${{ github.workflow }}"' teams_payload.json
# Add additional fields
yq -oj -iP '.attachments[0].content.body[0].columns[1].items[2].facts += ${{ inputs.additionalFields }} ' teams_payload.json
# Remove everyone but the assignee from the JSON payload so the final message only contains the assignee
filtered_entity=$(yq -oj '.attachments[0].content.msteams.entities[] | select(.text == "<at>${{ inputs.assignee }}</at>")' teams_payload.json)
yq -oj -iP '.attachments[0].content.msteams.entities = [ '"$filtered_entity"' ]' teams_payload.json
yq -oj -iP '.attachments[0].content.body[0].columns[1].items[2].facts += [ { "title": "Assignee", "value": "<at>${{ inputs.assignee }}</at>" } ]' teams_payload.json
# Add clickable button which links to the workflow triggering this notification
yq -oj -iP '.attachments[0].content.actions[0].url = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"' teams_payload.json
# Add additional buttons
yq -oj -iP '.attachments[0].content.actions += ${{ inputs.additionalButtons }}' teams_payload.json
cat teams_payload.json
curl \
-H "Content-Type: application/json" \
-d @teams_payload.json \
"${{ inputs.teamsWebhookURI }}"

View File

@ -0,0 +1,131 @@
{
"type": "AdaptiveCard",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"contentUrl": null,
"content": {
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"msteams": {
"width": "Full",
"entities": [
{
"type": "mention",
"text": "<at>elchead</at>",
"mentioned": {
"id": "3931943b-8d4b-4300-ac7e-bbb06c4da27f",
"name": "Adrian Stobbe"
}
},
{
"type": "mention",
"text": "<at>msanft</at>",
"mentioned": {
"id": "1359ea62-4415-423e-b808-9d9acb96def0",
"name": "Moritz Sanft"
}
},
{
"type": "mention",
"text": "<at>3u13r</at>",
"mentioned": {
"id": "26869b29-b0d6-48f8-a9ed-7a6374410a53",
"name": "Leonard Cohnen"
}
},
{
"type": "mention",
"text": "<at>daniel-weisse</at>",
"mentioned": {
"id": "759f3380-526e-4776-a620-cc713dce6177",
"name": "Daniel Weisse"
}
},
{
"type": "mention",
"text": "<at>katexochen</at>",
"mentioned": {
"id": "fcb7b554-33bb-47f7-8f0e-41b66aab4556",
"name": "Paul Meyer"
}
},
{
"type": "mention",
"text": "<at>derpsteb</at>",
"mentioned": {
"id": "a9a34611-9a38-4c00-a8a2-f87d94c2bf7d",
"name": "Otto Bittner"
}
},
{
"type": "mention",
"text": "<at>burgerdev</at>",
"mentioned": {
"id": "c9efc581-58ca-4da6-93ce-79f69f89deeb",
"name": "Markus Rudy"
}
}
]
},
"body": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": 1,
"items": [
{
"type": "Image",
"url": "https://miro.medium.com/max/552/1*G7s61tFPaLI9JRxWYpRNLw.png",
"size": "large",
"horizontalAlignment": "center"
}
],
"horizontalAlignment": "center",
"verticalContentAlignment": "center"
},
{
"type": "Column",
"width": 2,
"items": [
{
"type": "TextBlock",
"text": "Title",
"wrap": true,
"fontType": "Default",
"size": "large",
"weight": "bolder"
},
{
"type": "TextBlock",
"text": "Subtitle",
"wrap": true,
"size": "large",
"isSubtle": true,
"spacing": "Small"
},
{
"type": "FactSet",
"facts": [],
"spacing": "small"
}
]
}
]
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "GitHub workflow run",
"url": "",
"style": "positive"
}
]
}
}
]
}

View File

@ -1,304 +0,0 @@
name: Determine OS image upload variables
description: "Determine parameters used for image upload to various CSPs."
inputs:
csp:
description: "Cloud Service Provider"
required: true
uploadVariant:
description: "Upload variant"
required: true
basePath:
description: "Base path to the image build directory"
required: true
ref:
description: "Branch of the image to be built (or '-' for releases)"
required: true
stream:
description: "Image stream / type. (Use 'stable' for releases, 'nightly' for regular non-release images and 'debug' for debug builds)"
required: true
imageVersion:
description: "Semantic version including patch e.g. v<major>.<minor>.<patch> or pseudo version"
required: false
imageType:
description: "Type of image to build"
required: true
debug:
description: "Build debug image"
required: false
default: "false"
outputs:
awsRegion:
description: "Primary AWS region"
value: ${{ steps.aws.outputs.region }}
awsReplicationRegions:
description: "AWS regions to replicate the image to"
value: ${{ steps.aws.outputs.replicationRegions }}
awsBucket:
description: "AWS S3 bucket to upload the image to"
value: ${{ steps.aws.outputs.bucket }}
awsEfivarsPath:
description: "AWS efivars path"
value: ${{ steps.aws.outputs.efivarsPath }}
awsImagePath:
description: "AWS image path"
value: ${{ steps.aws.outputs.imagePath }}
awsJsonOutput:
description: "AWS ami json output path"
value: ${{ steps.aws.outputs.jsonOutput }}
awsImageFilename:
description: "AWS raw image filename"
value: ${{ steps.aws.outputs.imageFilename }}
awsImageName:
description: "AWS image name"
value: ${{ steps.aws.outputs.imageName }}
awsPublish:
description: "Should AWS AMI be published"
value: ${{ steps.aws.outputs.publish }}
azureResourceGroupName:
description: "Azure resource group name"
value: ${{ steps.azure.outputs.resourceGroupName }}
azureRegion:
description: "Primary Azure region"
value: ${{ steps.azure.outputs.region }}
azureReplicationRegions:
description: "Azure regions to replicate the image to"
value: ${{ steps.azure.outputs.replicationRegions }}
azureVmgsRegion:
description: "Azure VMGS region (AWS S3 bucket region where VMGS blob is stored)"
value: ${{ steps.azure.outputs.vmgsRegion }}
azureSku:
description: "Azure SIG SKU"
value: ${{ steps.azure.outputs.sku }}
azurePublisher:
description: "Azure SIG publisher"
value: ${{ steps.azure.outputs.publisher }}
azureRawImagePath:
description: "Azure raw image path"
value: ${{ steps.azure.outputs.rawImagePath }}
azureImagePath:
description: "Azure image path"
value: ${{ steps.azure.outputs.imagePath }}
azureJsonOutput:
description: "Azure image json output path"
value: ${{ steps.azure.outputs.jsonOutput }}
azureSecurityType:
description: "Azure security type"
value: ${{ steps.azure.outputs.securityType }}
azureDiskName:
description: "Azure disk name"
value: ${{ steps.azure.outputs.diskName }}
azureImageDefinition:
description: "Azure image definition"
value: ${{ steps.azure.outputs.imageDefinition }}
azureImageOffer:
description: "Azure image offer"
value: ${{ steps.azure.outputs.imageOffer }}
azureImageVersion:
description: "Azure image version"
value: ${{ steps.azure.outputs.imageVersion }}
azureGalleryName:
description: "Azure gallery name"
value: ${{ steps.azure.outputs.galleryName }}
azureVmgsPath:
description: "Azure VMGS path"
value: ${{ steps.azure.outputs.vmgsPath }}
gcpProject:
description: "GCP project"
value: ${{ steps.gcp.outputs.project }}
gcpBucket:
description: "GCP bucket"
value: ${{ steps.gcp.outputs.bucket }}
gcpRegion:
description: "GCP region"
value: ${{ steps.gcp.outputs.region }}
gcpRawImagePath:
description: "GCP raw image path"
value: ${{ steps.gcp.outputs.rawImagePath }}
gcpImagePath:
description: "GCP image path"
value: ${{ steps.gcp.outputs.imagePath }}
gcpJsonOutput:
description: "GCP image json output path"
value: ${{ steps.gcp.outputs.jsonOutput }}
gcpImageName:
description: "GCP image name"
value: ${{ steps.gcp.outputs.imageName }}
gcpImageFilename:
description: "GCP image filename"
value: ${{ steps.gcp.outputs.imageFilename }}
gcpImageFamily:
description: "GCP image family"
value: ${{ steps.gcp.outputs.imageFamily }}
openStackJsonOutput:
description: "OpenStack image json output path"
value: ${{ steps.openstack.outputs.jsonOutput }}
openStackBucket:
description: "OpenStack S3 bucket"
value: ${{ steps.openstack.outputs.bucket }}
openStackBaseUrl:
description: "OpenStack raw image base URL"
value: ${{ steps.openstack.outputs.baseUrl }}
openStackImagePath:
description: "OpenStack image path"
value: ${{ steps.openstack.outputs.imagePath }}
qemuJsonOutput:
description: "QEMU image json output path"
value: ${{ steps.qemu.outputs.jsonOutput }}
qemuBucket:
description: "QEMU S3 bucket"
value: ${{ steps.qemu.outputs.bucket }}
qemuBaseUrl:
description: "QEMU raw image base URL"
value: ${{ steps.qemu.outputs.baseUrl }}
qemuImagePath:
description: "QEMU image path"
value: ${{ steps.qemu.outputs.imagePath }}
runs:
using: "composite"
steps:
- name: Determine version
id: version
uses: ./.github/actions/pseudo_version
- name: Configure AWS input variables
id: aws
if: inputs.csp == 'aws'
shell: bash
env:
basePath: ${{ inputs.basePath }}
ref: ${{ inputs.ref }}
stream: ${{ inputs.stream }}
imageVersion: ${{ inputs.imageVersion }}
imageType: ${{ inputs.imageType }}
timestamp: ${{ steps.version.outputs.timestamp }}
semver: ${{ steps.version.outputs.semanticVersion }}
run: |
echo "region=eu-central-1" >> $GITHUB_OUTPUT
echo "replicationRegions=us-east-2 ap-south-1" >> $GITHUB_OUTPUT
echo "bucket=constellation-images" >> $GITHUB_OUTPUT
echo "efivarsPath=${basePath}/mkosi.output.aws/fedora~37/efivars.bin" >> $GITHUB_OUTPUT
echo "imagePath=${basePath}/mkosi.output.aws/fedora~37/image.raw" >> $GITHUB_OUTPUT
echo "jsonOutput=${basePath}/mkosi.output.aws/fedora~37/image-upload.json" >> $GITHUB_OUTPUT
echo "imageFilename=image-$(date +%s).raw" >> $GITHUB_OUTPUT
if [[ "${stream}" = "stable" ]]
then
echo "imageName=constellation-${imageVersion}" >> $GITHUB_OUTPUT
echo "publish=true" >> $GITHUB_OUTPUT
else
echo "imageName=constellation-${ref}-${stream}-${semver}-${timestamp}" >> $GITHUB_OUTPUT
echo "publish=false" >> $GITHUB_OUTPUT
fi
# gallery name may include alphanumeric characters, dots and underscores. Must end and begin with an alphanumeric character
# image definition may include alphanumeric characters, dots, dashes and underscores. Must end and begin with an alphanumeric character
# image version has to be semantic version in the form <uint>.<uint>.<uint> . uint may not be larger than 2,147,483,647
- name: Configure Azure input variables
id: azure
if: inputs.csp == 'azure'
shell: bash
env:
basePath: ${{ inputs.basePath }}
ref: ${{ inputs.ref }}
stream: ${{ inputs.stream }}
imageVersion: ${{ inputs.imageVersion }}
imageType: ${{ inputs.imageType }}
timestamp: ${{ steps.version.outputs.timestamp }}
semver: ${{ steps.version.outputs.semanticVersion }}
uploadVariant: ${{ inputs.uploadVariant }}
run: |
echo "resourceGroupName=constellation-images" >> $GITHUB_OUTPUT
echo "region=northeurope" >> $GITHUB_OUTPUT
echo "vmgsRegion=eu-central-1" >> $GITHUB_OUTPUT
echo "replicationRegions=northeurope eastus westeurope westus" >> $GITHUB_OUTPUT
echo "sku=constellation" >> $GITHUB_OUTPUT
echo "publisher=edgelesssys" >> $GITHUB_OUTPUT
echo "rawImagePath=${basePath}/mkosi.output.azure/fedora~37/image.raw" >> $GITHUB_OUTPUT
echo "imagePath=${basePath}/mkosi.output.azure/fedora~37/image.vhd" >> $GITHUB_OUTPUT
echo "jsonOutput=${basePath}/mkosi.output.azure/fedora~37/image-upload${uploadVariant}.json" >> $GITHUB_OUTPUT
# TODO: set default security type to "ConfidentialVM" once replication is possible
securityType=${{ inputs.uploadVariant }}
if [[ -z "${securityType}" ]]; then
securityType=ConfidentialVMSupported
fi
echo "securityType=${securityType}" >> $GITHUB_OUTPUT
echo "diskName=constellation-${stream}-${timestamp}-${securityType,,}" >> $GITHUB_OUTPUT
if [[ "${stream}" = "stable" ]]
then
echo "imageDefinition=constellation" >> $GITHUB_OUTPUT
echo "imageOffer=constellation" >> $GITHUB_OUTPUT
echo "imageVersion=${imageVersion:1}" >> $GITHUB_OUTPUT
galleryName=Constellation
elif [[ "${imageType}" = "debug" && ( "${ref}" = "-" || "${ref}" = "main" ) ]]
then
echo "imageDefinition=${semver}" >> $GITHUB_OUTPUT
echo "imageOffer=${semver}" >> $GITHUB_OUTPUT
echo "imageVersion=${timestamp:0:4}.${timestamp:4:4}.${timestamp:8}" >> $GITHUB_OUTPUT
galleryName=Constellation_Debug
else
echo "imageDefinition=${ref}-${stream}" >> $GITHUB_OUTPUT
echo "imageOffer=${ref}-${stream}" >> $GITHUB_OUTPUT
echo "imageVersion=${timestamp:0:4}.${timestamp:4:4}.${timestamp:8}" >> $GITHUB_OUTPUT
galleryName=Constellation_Testing
fi
# TODO: enable VMGS upload for ConfidentialVM images once replication is possible
if [[ "${securityType}" == "ConfidentialVMSupported" ]]; then
echo "galleryName=${galleryName}_CVM" >> $GITHUB_OUTPUT
echo "vmgsPath=" >> $GITHUB_OUTPUT
else
echo "galleryName=${galleryName}" >> $GITHUB_OUTPUT
echo "vmgsPath=${basePath}/pki/${securityType}.vmgs" >> $GITHUB_OUTPUT
fi
# image family and image name may include lowercase alphanumeric characters and dashes.
# Must not end or begin with a dash
- name: Configure GCP input variables
id: gcp
if: inputs.csp == 'gcp'
shell: bash
env:
basePath: ${{ inputs.basePath }}
ref: ${{ inputs.ref }}
stream: ${{ inputs.stream }}
imageVersion: ${{ inputs.imageVersion }}
imageType: ${{ inputs.imageType }}
timestamp: ${{ steps.version.outputs.timestamp }}
run: |
echo "project=constellation-images" >> $GITHUB_OUTPUT
echo "bucket=constellation-images" >> $GITHUB_OUTPUT
echo "region=europe-west3" >> $GITHUB_OUTPUT
echo "rawImagePath=${basePath}/mkosi.output.gcp/fedora~37/image.raw" >> $GITHUB_OUTPUT
echo "imagePath=${basePath}/mkosi.output.gcp/fedora~37/image.tar.gz" >> $GITHUB_OUTPUT
echo "jsonOutput=${basePath}/mkosi.output.gcp/fedora~37/image-upload.json" >> $GITHUB_OUTPUT
echo "imageName=${imageVersion//./-}-${stream}" >> $GITHUB_OUTPUT
echo "imageFilename=${imageVersion//./-}-${stream}.tar.gz" >> $GITHUB_OUTPUT
if [[ "${stream}" = "stable" ]]
then
echo "imageFamily=constellation" >> $GITHUB_OUTPUT
else
echo "imageFamily=constellation-${ref::45}" >> $GITHUB_OUTPUT
fi
- name: Configure OpenStack input variables
id: openstack
if: inputs.csp == 'openstack'
shell: bash
env:
basePath: ${{ inputs.basePath }}
run: |
echo "bucket=cdn-constellation-backend" >> $GITHUB_OUTPUT
echo "baseUrl=https://cdn.confidential.cloud" >> $GITHUB_OUTPUT
echo "imagePath=${basePath}/mkosi.output.openstack/fedora~37/image.raw" >> $GITHUB_OUTPUT
echo "jsonOutput=${basePath}/mkosi.output.openstack/fedora~37/image-upload.json" >> $GITHUB_OUTPUT
- name: Configure QEMU input variables
id: qemu
if: inputs.csp == 'qemu'
shell: bash
env:
basePath: ${{ inputs.basePath }}
run: |
echo "bucket=cdn-constellation-backend" >> $GITHUB_OUTPUT
echo "baseUrl=https://cdn.confidential.cloud" >> $GITHUB_OUTPUT
echo "imagePath=${basePath}/mkosi.output.qemu/fedora~37/image.raw" >> $GITHUB_OUTPUT
echo "jsonOutput=${basePath}/mkosi.output.qemu/fedora~37/image-upload.json" >> $GITHUB_OUTPUT

View File

@ -0,0 +1,23 @@
name: Pick an assignee
description: "Pick an assignee"
outputs:
assignee:
description: "GitHub login of the assignee"
value: ${{ steps.pick-assignee.outputs.assignee }}
runs:
using: "composite"
steps:
- name: Pick an assignee
id: pick-assignee
shell: bash
run: |
possibleAssignees=(
"elchead"
"daniel-weisse"
"msanft"
"burgerdev"
)
assignee=${possibleAssignees[$RANDOM % ${#possibleAssignees[@]}]}
echo "assignee=$assignee" | tee -a "$GITHUB_OUTPUT"

View File

@ -0,0 +1,42 @@
name: Pick an Azure region
description: "Pick an Azure region"
inputs:
attestationVariant:
description: "Attestation variant to use. Not all regions support all variants."
required: true
outputs:
region:
description: "One of the supported Azure regions"
value: ${{ steps.pick-region.outputs.region }}
runs:
using: "composite"
steps:
- name: Pick a region
id: pick-region
shell: bash
run: |
possibleRegionsSNP=(
"westus"
"eastus"
"northeurope"
"westeurope"
"southeastasia"
)
possibleRegionsTDX=(
"centralus"
"eastus2"
"northeurope"
"westeurope"
)
if [[ "${{ inputs.attestationVariant }}" == "azure-tdx" ]]; then
possibleRegions=("${possibleRegionsTDX[@]}")
else
possibleRegions=("${possibleRegionsSNP[@]}")
fi
region=${possibleRegions[$RANDOM % ${#possibleRegions[@]}]}
echo "region=$region" | tee -a "$GITHUB_OUTPUT"

View File

@ -2,39 +2,23 @@ name: Determine pseudo version
description: "Determine go-like pseudo version to use as container image tag."
outputs:
semanticVersion:
description: "Semantic version based on the current HEAD"
value: ${{ steps.pseudo-version.outputs.semanticVersion }}
version:
description: "Version based on branch name"
value: ${{ steps.pseudo-version.outputs.version }}
timestamp:
description: "Commit timestamp based on the current HEAD"
value: ${{ steps.pseudo-version.outputs.timestamp }}
branchName:
description: "Branch name"
value: ${{ steps.pseudo-version.outputs.branchName }}
# Linux runner only (homedir trick does not work on macOS, required for private runner)
runs:
using: "composite"
steps:
- name: get version
id: pseudo-version
shell: bash
working-directory: hack/pseudo-version
env:
WORKSPACE_STATUS_TOOL: ${{ github.workspace }}/tools/workspace_status.sh
run: |
homedir="$(getent passwd $(id -u) | cut -d ":" -f 6)"
export GOCACHE=${homedir}/.cache/go-build
export GOPATH=${homedir}/go
export GOMODCACHE=${homedir}/.cache/go-mod
version=$(go run .)
semanticVersion=$(go run . -semantic-version)
timestamp=$(go run . -print-timestamp)
branchName=$(go run . -print-branch)
echo "version=${version}" >> $GITHUB_OUTPUT
echo "semanticVersion=${semanticVersion}" >> $GITHUB_OUTPUT
echo "timestamp=${timestamp}" >> $GITHUB_OUTPUT
echo "branchName=${branchName}" >> $GITHUB_OUTPUT
version=$(${WORKSPACE_STATUS_TOOL} | grep STABLE_STAMP_VERSION | cut -d ' ' -f2)
branchName=$(git branch --show-current | tr '/' '-')
echo "version=v${version}" | tee -a "$GITHUB_OUTPUT"
echo "branchName=${branchName}" | tee -a "$GITHUB_OUTPUT"

View File

@ -0,0 +1,46 @@
name: Release Helm Chart
description: "Creates a PR in edgelesssys/helm to publish a new Chart."
inputs:
chartPath:
description: "Path to chart that should be published"
required: true
githubToken:
description: "GitHub token"
required: true
runs:
using: "composite"
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
repository: edgelesssys/helm
ref: main
path: helm
- name: Update s3proxy Chart version
id: update-chart-version
shell: bash
run: |
helm package ${{ inputs.chartPath }} --destination helm/stable
cd helm
helm repo index stable --url https://helm.edgeless.systems/stable
echo version=$(yq eval ".version" ${{ inputs.chartPath }}/Chart.yaml) | tee -a $GITHUB_OUTPUT
- name: Create pull request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
path: helm
branch: "release/s3proxy/${{ steps.update-chart-version.outputs.version }}"
base: main
title: "s3proxy: release version ${{ steps.update-chart-version.outputs.version }}"
body: |
:robot: *This is an automated PR.* :robot:
This PR is triggered as part of the Constellation [release pipeline](https://github.com/edgelesssys/constellation/actions/runs/${{ github.run_id }}).
It adds a new packaged chart to the repo's stable stream.
commit-message: "s3proxy: release version ${{ steps.update-chart-version.outputs.version }}"
committer: edgelessci <edgelessci@users.noreply.github.com>
# We need to push changes using a token, otherwise triggers like on:push and on:pull_request won't work.
token: ${{ !github.event.pull_request.head.repo.fork && inputs.githubToken || '' }}

View File

@ -3,22 +3,22 @@ description: Resolve string presets and shortpaths to shortpaths only
inputs:
osImage:
description: "Shortpath or main-debug or release-stable"
description: "Shortpath, main-debug, main-nightly, or release-stable"
required: true
outputs:
osImage:
description: "Shortpath of for input string, original input if that was already a shortpath"
description: "Shortpath of input string, original input if that was already a shortpath"
value: ${{ steps.set-output.outputs.osImage }}
isDebugImage:
description: "Input represents a debug image or not"
description: "Input is a debug image or not"
value: ${{ steps.set-output.outputs.isDebugImage }}
runs:
using: "composite"
steps:
- name: Login to AWS
uses: aws-actions/configure-aws-credentials@e1e17a757e536f70e52b5a12b2e8d1d1c60e04ef # v2.0.0
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
with:
role-to-assume: arn:aws:iam::795746500882:role/GithubConstellationVersionsAPIRead
aws-region: eu-central-1
@ -27,10 +27,10 @@ runs:
id: input-is-preset
shell: bash
run: |
if [[ "${{ inputs.osImage }}" == "ref/main/stream/debug/?" || "${{ inputs.osImage }}" == "ref/release/stream/stable/?" ]]; then
echo "result=true" >> "$GITHUB_OUTPUT"
if [[ "${{ inputs.osImage }}" == "ref/main/stream/debug/?" || "${{ inputs.osImage }}" == "ref/main/stream/nightly/?" || "${{ inputs.osImage }}" == "ref/release/stream/stable/?" ]]; then
echo "result=true" | tee -a "$GITHUB_OUTPUT"
else
echo "result=false" >> "$GITHUB_OUTPUT"
echo "result=false" | tee -a "$GITHUB_OUTPUT"
fi
- name: Separate ref and stream from matrix
@ -43,6 +43,9 @@ runs:
echo "ref=$(echo $REFSTREAM | cut -d/ -f2)" | tee -a "$GITHUB_OUTPUT"
echo "stream=$(echo $REFSTREAM | cut -d/ -f4)" | tee -a "$GITHUB_OUTPUT"
- name: Setup Bazel & Nix
if: steps.input-is-preset.outputs.result == 'true'
uses: ./.github/actions/setup_bazel_nix
- name: Find latest image
if: steps.input-is-preset.outputs.result == 'true'
@ -64,16 +67,16 @@ runs:
export IMAGE=${{ inputs.osImage }}
fi
echo "osImage=$IMAGE" >> $GITHUB_OUTPUT
echo "osImage=$IMAGE" | tee -a "$GITHUB_OUTPUT"
echo "Using image: $IMAGE"
case "$IMAGE" in
*"/stream/debug/"*)
echo "isDebugImage=true" >> "$GITHUB_OUTPUT"
echo "isDebugImage=true" | tee -a "$GITHUB_OUTPUT"
echo "Image is debug image."
;;
*)
echo "isDebugImage=false" >> "$GITHUB_OUTPUT"
echo "isDebugImage=false" | tee -a "$GITHUB_OUTPUT"
echo "Image is not debug image."
;;
esac

View File

@ -1,70 +0,0 @@
name: Setup bazel
description: Setup Bazel for CI builds and tests
inputs:
useCache:
description: "Cache Bazel artifacts. Use 'true' to enable with rw, 'readonly' to download, and 'false' to disable."
default: "false"
required: true
buildBuddyApiKey:
description: "BuildBuddy API key for caching Bazel artifacts"
required: false
runs:
using: "composite"
steps:
- name: Check inputs
shell: bash
run: |
echo "::group::Check inputs"
if [[ "${{ inputs.useCache }}" != "true" && "${{ inputs.useCache }}" != "readonly" && "${{ inputs.useCache }}" != "false" ]]; then
echo "Invalid value for 'useCache' input: '${{ inputs.useCache }}'. Must be 'true', 'readonly', or 'false'."
exit 1
fi
if [[ "${{ inputs.useCache }}" == "true" || "${{ inputs.useCache }}" == "readonly" ]] && [[ -z "${{ inputs.buildBuddyApiKey }}" ]]; then
echo "BuildBuddy API key is required when cache is enabled."
exit 1
fi
echo "::endgroup::"
- name: Bazel repository cache (Linux)
uses: actions/cache/restore@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
if: runner.os == 'Linux' && (inputs.useCache == 'true' || inputs.useCache == 'readonly')
with:
path: |
${{ github.workspace }}/tools/pseudo-version
/home/runner/.cache/bazel
/home/runner/.cache/shared_bazel_repository_cache
/home/runner/.cache/shared_bazel_action_cache
/tmp/bazel-zig-cc
key: bazel
- name: Configure Bazel
shell: bash
if: inputs.useCache == 'true' || inputs.useCache == 'readonly'
env:
BUILDBUDDY_ORG_API_KEY: ${{ inputs.buildBuddyApiKey }}
run: |
echo "::group::Configure Bazel"
cat <<EOF >> ~/.bazelrc
build --bes_results_url=https://app.buildbuddy.io/invocation/
build --bes_backend=grpcs://remote.buildbuddy.io
build --remote_cache=grpcs://remote.buildbuddy.io
build --remote_timeout=3600
build --experimental_remote_build_event_upload=minimal
build --experimental_remote_cache_compression
build --remote_header=x-buildbuddy-api-key=${BUILDBUDDY_ORG_API_KEY}
EOF
echo "::endgroup::"
- name: Configure Bazel (readonly)
shell: bash
if: inputs.useCache == 'readonly'
run: |
echo "::group::Configure Bazel (readonly)"
echo "build --remote_upload_local_results=false" >> ~/.bazelrc
echo "::endgroup::"
- name: Check bazel version
shell: bash
run: bazel version

View File

@ -0,0 +1,250 @@
name: Setup bazel and Nix
description: Setup Bazel and Nix for CI builds and tests
inputs:
useCache:
description: "Cache Bazel artifacts. Use 'rbe' to enable with remote execution, and 'false' to disable."
default: "false"
required: true
rbePlatform:
description: "RBE platform to use. If empty, RBE will not be used."
required: false
nixTools:
description: "Nix tools to install as list of strings separated by newlines. If empty, no tools will be installed."
default: ""
required: false
runs:
using: "composite"
steps:
- name: Check inputs
id: check_inputs
shell: bash
run: |
echo "::group::Check inputs"
if [[ "${{ inputs.useCache }}" != "rbe" && "${{ inputs.useCache }}" != "false" ]]; then
echo "Invalid value for 'useCache' input: '${{ inputs.useCache }}'. Must be 'rbe', or 'false'."
exit 1
fi
if [[ "${{ inputs.useCache }}" == "rbe" && -z "${{ inputs.rbePlatform }}" ]]; then
echo "RBE platform is required when cache is enabled."
exit 1
fi
if [[ -n "${{inputs.rbePlatform}}" ]]; then
case "${{ inputs.rbePlatform }}" in
ubuntu-22.04)
echo "rbeConfig=build_barn_rbe_ubuntu_22_04" | tee -a "$GITHUB_OUTPUT"
;;
*)
echo "Invalid value for 'rbePlatform' input: '${{ inputs.rbePlatform }}'. Must be 'ubuntu-22.04'."
exit 1
;;
esac
fi
if command -v nix; then
echo "nixPreinstalled=true" | tee -a "$GITHUB_OUTPUT"
else
echo "nixPreinstalled=false" | tee -a "$GITHUB_OUTPUT"
fi
if command -v bazel; then
echo "bazelPreinstalled=true" | tee -a "$GITHUB_OUTPUT"
else
echo "bazelPreinstalled=false" | tee -a "$GITHUB_OUTPUT"
fi
if [[ -f /etc/NIXOS ]]; then
echo "nixOS=true" | tee -a "$GITHUB_OUTPUT"
else
echo "nixOS=false" | tee -a "$GITHUB_OUTPUT"
fi
if [[ "$RUNNER_OS" == "Linux" ]]; then
echo "os=linux" | tee -a "$GITHUB_OUTPUT"
elif [[ "$RUNNER_OS" == "Windows" ]]; then
echo "os=windows" | tee -a "$GITHUB_OUTPUT"
elif [[ "$RUNNER_OS" == "macOS" ]]; then
echo "os=darwin" | tee -a "$GITHUB_OUTPUT"
else
echo "$RUNNER_OS not supported"
exit 1
fi
if [[ "$RUNNER_ARCH" == "X64" ]]; then
echo "arch=amd64" | tee -a "$GITHUB_OUTPUT"
elif [[ "$RUNNER_ARCH" == "ARM64" ]]; then
echo "arch=arm64" | tee -a "$GITHUB_OUTPUT"
else
echo "$RUNNER_ARCH not supported"
exit 1
fi
echo "nixVersion=$(cat "${{ github.workspace }}/.nixversion")" | tee -a "$GITHUB_OUTPUT"
echo "::endgroup::"
- name: Install current Bash on macOS
shell: bash
if: runner.os == 'macOS'
run: brew install bash
- name: Prepare to install tools
shell: bash
run: |
echo "::group::Prepare to install nix and bazel"
requiredTools=( "curl" "xz" "unzip" "git" )
declare -A packageNamesUbuntu=( ["curl"]="curl" ["xz"]="xz-utils" ["unzip"]="unzip" ["git"]="git" )
missingTools=()
for tool in "${requiredTools[@]}"; do
if ! command -v "$tool"; then
echo "$tool not found, installing..."
missingTools+=("$tool")
else
echo "$tool found $(command -v "$tool")"
fi
done
missingPackagesUbuntu=()
for tool in "${missingTools[@]}"; do
echo "Ubuntu name for $tool is ${packageNamesUbuntu[$tool]}"
missingPackagesUbuntu+=("${packageNamesUbuntu[$tool]}")
done
if [[ "${#missingTools[@]}" -gt 0 ]]; then
echo "Installing missing tools ${missingTools[*]}..."
if [[ "$RUNNER_OS" == "Linux" ]]; then
sudo apt-get update || true
sudo apt-get install -y ${missingPackagesUbuntu[*]} || true
fi
fi
echo "::endgroup::"
- name: Install nix
if: steps.check_inputs.outputs.nixPreinstalled == 'false'
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
install_url: "https://releases.nixos.org/nix/nix-${{ steps.check_inputs.outputs.nixVersion }}/install"
- name: Set $USER if not set
shell: bash
run: |
echo "::group::Set \$USER if not set"
if [[ -z "$USER" ]]; then
echo "USER=$(id -un)" | tee -a "$GITHUB_ENV"
fi
echo "::endgroup::"
- name: Install Bazelisk
if: steps.check_inputs.outputs.bazelPreinstalled == 'false' && steps.check_inputs.outputs.nixOS == 'false'
shell: bash
env:
OS: ${{ steps.check_inputs.outputs.os }}
ARCH: ${{ steps.check_inputs.outputs.arch }}
run: |
echo "::group::Install Bazelisk"
sudo mkdir -p /usr/local/bin
sudo chown -R "$USER" /usr/local/bin
curl -fsSLo /usr/local/bin/bazel "https://github.com/bazelbuild/bazelisk/releases/download/v1.18.0/bazelisk-${OS}-${ARCH}"
chmod +x /usr/local/bin/bazel
echo "::endgroup::"
- name: Free up space (Ubuntu)
shell: bash
if: startsWith(runner.name, 'GitHub Actions') && runner.os == 'Linux'
run: |
echo "::group::Free up space (Ubuntu)"
echo "Available storage (before):"
df -h
sudo apt-get update || true
sudo apt-get remove -y '^dotnet-.*' || true
sudo apt-get remove -y '^llvm-.*' || true
sudo apt-get remove -y 'php.*' || true
sudo apt-get remove -y '^mongodb-.*' || true
sudo apt-get remove -y '^mysql-.*' || true
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo apt-get autoremove -y || true
sudo apt-get clean || true
echo "Available storage (after):"
df -h
echo "::endgroup::"
- name: Configure Bazel (general)
shell: bash
env:
WORKSPACE: ${{ github.workspace }}
run: |
echo "::group::Configure Bazel"
cat <<EOF >> "${WORKSPACE}/.bazeloverwriterc"
import %workspace%/bazel/bazelrc/ci.bazelrc
EOF
echo "::endgroup::"
- name: Configure Bazel (rbe)
if: inputs.useCache == 'rbe'
shell: bash
env:
RBE_CONFIG: ${{ steps.check_inputs.outputs.rbeConfig }}
WORKSPACE: ${{ github.workspace }}
run: |
echo "::group::Configure Bazel"
cat <<EOF >> "${WORKSPACE}/.bazeloverwriterc"
common --config=${RBE_CONFIG}
common --repository_cache=/repository_cache
common --repo_env=GOPROXY=http://goproxy:3000
EOF
echo "::endgroup::"
- name: Disable disk cache on GitHub Actions runners
if: startsWith(runner.name , 'GitHub Actions')
shell: bash
env:
WORKSPACE: ${{ github.workspace }}
run: |
echo "::group::Configure Bazel (disk cache)"
echo "common --disk_cache=" >> "${WORKSPACE}/.bazeloverwriterc"
echo "common --repository_cache=" >> "${WORKSPACE}/.bazeloverwriterc"
echo "::endgroup::"
- name: Install nix tools
if: inputs.nixTools != ''
shell: bash
env:
NIXPKGS_ALLOW_UNFREE: 1
tools: ${{ inputs.nixTools }}
repository: ${{ github.repository }}
gitSha: ${{ github.sha }}
run: |
echo "::group::Install nix tools"
toolsNixList=$(printf ' "%s"' ${tools[@]})
toolsNixList="[ ${toolsNixList} ]"
expressionFile=$(mktemp)
cat << "EOF" > "${expressionFile}"
{ tools, repository, rev }:
let
repoFlake = builtins.getFlake ("github:" + repository + "/" + rev);
nixpkgs = repoFlake.inputs.nixpkgs;
pkgs = import nixpkgs { system = builtins.currentSystem; };
toolPkgs = map (p: pkgs.${p}) tools;
in
{
tools = pkgs.symlinkJoin { name = "tools"; paths = [ toolPkgs ]; };
pathVar = pkgs.lib.makeBinPath toolPkgs;
}
EOF
# ensure the store paths are created
nix-build \
--no-out-link \
--arg tools "${toolsNixList}" \
--argstr repository "${repository}" \
--argstr rev "${gitSha}" \
--attr tools \
"${expressionFile}"
# evaluate the path expression
# EXTRA_PATH=/nix/store/...:/nix/store/...:/nix/store/...
EXTRA_PATH=$(nix eval --raw --file "${expressionFile}" \
--arg tools "${toolsNixList}" \
--argstr repository "${repository}" \
--argstr rev "${gitSha}" \
pathVar)
echo "EXTRA_PATH=${EXTRA_PATH}"
echo "${EXTRA_PATH}" >> "${GITHUB_PATH}"
echo "::endgroup::"

View File

@ -1,17 +0,0 @@
name: Setup crane
description: "Install crane (go-containerregistry)."
runs:
using: composite
steps:
- name: Install
shell: bash
env:
VERSION: "0.12.1"
OS: ${{ runner.os == 'Linux' && 'Linux' || 'Darwin' }}
ARCH: ${{ runner.arch == 'X64' && 'x86_64' || runner.arch == 'ARM64' && 'arm64' }}
run: |
echo "::group::Install crane"
curl -fsSL "https://github.com/google/go-containerregistry/releases/download/v${VERSION}/go-containerregistry_${OS}_${ARCH}.tar.gz" > go-containerregistry.tar.gz
tar -xzf go-containerregistry.tar.gz
sudo mv krane gcrane crane /usr/local/bin/
echo "::endgroup::"

View File

@ -1,57 +0,0 @@
name: Setup Linux build environment
description: "Setup a Linux Build environment (for self-hosted runners)"
runs:
using: "composite"
steps:
- name: Setup custom apt repositories (azure-cli & yq)
shell: bash
run: |
sudo apt-get update
sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg -y
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc |
gpg --dearmor |
sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" |
sudo tee /etc/apt/sources.list.d/azure-cli.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CC86BB64
sudo add-apt-repository ppa:rmescandon/yq
- name: Update apt repository information
shell: bash
run: |
sudo apt-get update
- name: Install build-essential & CMake
shell: bash
run: |
sudo apt-get install \
build-essential cmake \
-y
- name: Install curl gpg
shell: bash
run: |
sudo apt-get install curl gpg -y
- name: Install yq jq
shell: bash
run: |
sudo apt-get install yq jq -y
- name: Install AWS CLI
shell: bash
run: |
sudo apt-get -y install awscli
- name: Install az CLI
shell: bash
run: |
sudo apt-get install azure-cli -y
- name: Set up gcloud CLI
uses: google-github-actions/setup-gcloud@62d4898025f6041e16b1068643bfc5a696863587 # v1.1.0
- name: Set up Docker Buildx
id: docker-setup
uses: docker/setup-buildx-action@4b4e9c3e2d4531116a6f8ba8e71fc6e2cb6e6c8c # v2.5.0

View File

@ -1,42 +0,0 @@
name: Setup mkosi
description: Install mkosi and all its dependencies
inputs:
version:
description: "Version (commit hash) of mkosi to install."
required: true
runs:
using: composite
steps:
- name: Dependencies
shell: bash
run: |
echo "::group::Dependencies"
echo "deb-src http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs) main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --assume-yes --no-install-recommends \
dnf \
systemd-container \
qemu-system-x86 \
ovmf \
e2fsprogs \
squashfs-tools
echo "::endgroup::"
# Try to eliminate "Failed to dissect image: Connection timed out" errors from nspawn by compiling
# systemd-nspawn from v251 from source.
- name: Update systemd-nspawn
shell: bash
working-directory: ${{ github.action_path }}
run: |
echo "::group::Update systemd-nspawn"
sudo apt-get build-dep systemd
git clone https://github.com/systemd/systemd-stable --branch v251.2 --depth=1
meson systemd-stable/build systemd-stable
ninja -C systemd-stable/build systemd-nspawn
sudo ln -svf $PWD/systemd-stable/build/systemd-nspawn $(which systemd-nspawn)
systemd-nspawn --version
echo "::endgroup::"
- name: Install
shell: bash
run: sudo python3 -m pip install git+https://github.com/systemd/mkosi.git@${{ inputs.version }}

View File

@ -0,0 +1,176 @@
name: Terraform provider apply
description: "Create/Apply a Constellation cluster using the Terraform provider."
inputs:
cloudProvider:
description: "The cloud provider the test runs on."
required: true
runs:
using: "composite"
steps:
- name: Create Terraform file
shell: bash
run: |
attestationVariant=""
case "$(yq '.attestation | keys | .[0]' constellation-conf.yaml)" in
"awsSEVSNP")
attestationVariant="aws-sev-snp"
;;
"azureSEVSNP")
attestationVariant="azure-sev-snp"
;;
"azureTDX")
attestationVariant="azure-tdx"
;;
"gcpSEVES")
attestationVariant="gcp-sev-es"
;;
"gcpSEVSNP")
attestationVariant="gcp-sev-snp"
;;
"qemuVTPM")
attestationVariant="qemu-vtpm"
;;
*)
echo "Unknown attestation variant: $(yq '.attestation | keys | .[0]' constellation-conf.yaml)"
exit 1
;;
esac
cat << EOF > main.tf
terraform {
required_providers {
constellation = {
source = "edgelesssys/constellation"
version = "$(yq '.microserviceVersion' constellation-conf.yaml | sed 's/^v//')"
}
random = {
source = "hashicorp/random"
version = "3.7.1"
}
}
}
resource "random_bytes" "master_secret" {
length = 32
}
resource "random_bytes" "master_secret_salt" {
length = 32
}
resource "random_bytes" "measurement_salt" {
length = 32
}
data "constellation_attestation" "con_attestation" {
csp = "${{ inputs.cloudProvider }}"
attestation_variant = "${attestationVariant}"
image = data.constellation_image.con_image.image
maa_url = "$(yq '.infrastructure.azure.attestationURL' constellation-state.yaml)"
insecure = true
}
data "constellation_image" "con_image" {
version = "$(yq '.image' constellation-conf.yaml)"
attestation_variant = "${attestationVariant}"
csp = "${{ inputs.cloudProvider }}"
region = "$(yq '.provider.aws.region' constellation-conf.yaml)"
}
resource "constellation_cluster" "cluster" {
csp = "${{ inputs.cloudProvider }}"
constellation_microservice_version = "$(yq '.microserviceVersion' constellation-conf.yaml)"
name = "$(yq '.name' constellation-conf.yaml)"
uid = "$(yq '.infrastructure.uid' constellation-state.yaml)"
image = data.constellation_image.con_image.image
attestation = data.constellation_attestation.con_attestation.attestation
init_secret = "$(yq '.infrastructure.initSecret' constellation-state.yaml | xxd -r -p)"
master_secret = random_bytes.master_secret.hex
master_secret_salt = random_bytes.master_secret_salt.hex
measurement_salt = random_bytes.measurement_salt.hex
out_of_cluster_endpoint = "$(yq '.infrastructure.clusterEndpoint' constellation-state.yaml)"
in_cluster_endpoint = "$(yq '.infrastructure.inClusterEndpoint' constellation-state.yaml)"
kubernetes_version = "$(yq '.kubernetesVersion' constellation-conf.yaml)"
azure = {
count = "$(yq '.provider | keys | .[0]' constellation-conf.yaml)" == "azure" ? 1 : 0
tenant_id = "$(yq '.provider.azure.tenant' constellation-conf.yaml)"
subscription_id = "$(yq '.infrastructure.azure.subscriptionID' constellation-state.yaml)"
uami_client_id = "$(yq '.infrastructure.azure.userAssignedIdentity' constellation-state.yaml)"
uami_resource_id = "$(yq '.provider.azure.userAssignedIdentity' constellation-conf.yaml)"
location = "$(yq '.provider.azure.location' constellation-conf.yaml)"
resource_group = "$(yq '.infrastructure.azure.resourceGroup' constellation-state.yaml)"
load_balancer_name = "$(yq '.infrastructure.azure.loadBalancerName' constellation-state.yaml)"
network_security_group_name = "$(yq '.infrastructure.azure.networkSecurityGroupName' constellation-state.yaml)"
}
gcp = {
count = "$(yq '.provider | keys | .[0]' constellation-conf.yaml)" == "gcp" ? 1 : 0
project_id = "$(yq '.infrastructure.gcp.projectID' constellation-state.yaml)"
service_account_key = sensitive("$(cat $(yq '.provider.gcp.serviceAccountKeyPath' constellation-conf.yaml) | base64 -w0)")
}
openstack = {
cloud = "stackit"
clouds_yaml_path = "~/.config/openstack/clouds.yaml"
floating_ip_pool_id = "970ace5c-458f-484a-a660-0903bcfd91ad"
deploy_yawol_load_balancer = true
yawol_image_id = "bcd6c13e-75d1-4c3f-bf0f-8f83580cc1be"
yawol_flavor_id = "3b11b27e-6c73-470d-b595-1d85b95a8cdf"
network_id = "$(yq '.infrastructure.networkID' constellation-state.yaml)"
subnet_id = "$(yq '.infrastructure.subnetID' constellation-state.yaml)"
}
network_config = {
ip_cidr_node = "$(yq '.infrastructure.ipCidrNode' constellation-state.yaml)"
ip_cidr_service = "$(yq '.serviceCIDR' constellation-conf.yaml)"
ip_cidr_pod = "$(yq '.infrastructure.gcp.ipCidrPod' constellation-state.yaml)" # This is null for everything but GCP
}
}
output "master_secret" {
value = random_bytes.master_secret.base64
sensitive = true
}
output "master_secret_salt" {
value = random_bytes.master_secret_salt.base64
sensitive = true
}
output "measurement_salt" {
value = random_bytes.measurement_salt.hex
sensitive = true
}
output "cluster_id" {
value = constellation_cluster.cluster.cluster_id
}
output "owner_id" {
value = constellation_cluster.cluster.owner_id
}
output "kubeconfig" {
value = constellation_cluster.cluster.kubeconfig
sensitive = true
}
EOF
- name: Apply Terraform configuration
shell: bash
run: |
terraform init
terraform apply -auto-approve
- name: Write output
shell: bash
run: |
terraform output -raw kubeconfig > "$(pwd)/constellation-admin.conf"
yq -i ".clusterValues.measurementSalt = $(terraform output measurement_salt)" constellation-state.yaml
yq -i ".clusterValues.clusterID = $(terraform output cluster_id)" constellation-state.yaml
yq -i ".clusterValues.ownerID = $(terraform output owner_id)" constellation-state.yaml
cat << EOF > constellation-mastersecret.json
{
"key": "$(terraform output -raw master_secret)",
"salt": "$(terraform output -raw master_secret_salt)"
}
EOF

View File

@ -0,0 +1,64 @@
name: Update TFState
description: "Update the terraform state artifact. We use this to either delete an artifact if the e2e test was cleaned up successfully or to update the artifact with the latest terraform state."
inputs:
name:
description: "The name of the artifact that contains the tfstate."
required: true
runID:
description: "The ID of your current run (github.run_id)."
required: true
encryptionSecret:
description: "The encryption secret for the artifacts."
required: true
runs:
using: "composite"
steps:
- name: Check if uploaded tfstate can be deleted
if: always()
shell: bash
run: |
if [[ ! -d constellation-terraform ]] && [[ ! -d constellation-iam-terraform ]]; then
echo "DELETE_TF_STATE=true" >> "$GITHUB_ENV"
else
echo "DELETE_TF_STATE=false" >> "$GITHUB_ENV"
fi
- name: Delete tfstate artifact if necessary
if: always() && env.DELETE_TF_STATE == 'true'
uses: ./.github/actions/artifact_delete
with:
name: ${{ inputs.name }}
workflowID: ${{ inputs.runID }}
- name: Prepare left over terraform state folders
if: always() && env.DELETE_TF_STATE == 'false'
shell: bash
run: |
rm -rf to-zip/*
mkdir -p to-zip
to_upload=""
if [[ -d constellation-terraform ]]; then
cp -r constellation-terraform to-zip
rm -f to-zip/constellation-terraform/plan.zip
rm -rf to-zip/constellation-terraform/.terraform
to_upload+="to-zip/constellation-terraform"
fi
if [[ -d constellation-iam-terraform ]]; then
cp -r constellation-iam-terraform to-zip
rm -rf to-zip/constellation-iam-terraform/.terraform
to_upload+=" to-zip/constellation-iam-terraform"
fi
echo "TO_UPLOAD=$to_upload" >> "$GITHUB_ENV"
- name: Update tfstate
if: always() && env.TO_UPLOAD != ''
uses: ./.github/actions/artifact_upload
with:
name: ${{ inputs.name }}
path: >
${{ env.TO_UPLOAD }}
encryptionSecret: ${{ inputs.encryptionSecret }}
overwrite: true

Some files were not shown because too many files have changed in this diff Show More