Skip to content

Commit

Permalink
Add LUKS key to the plan
Browse files Browse the repository at this point in the history
This patch adds the LUKS keys to the plan specs using a secret ref. It
expected to have list of strings. Each value of the string should
contain the ID or name of the device, and the selector as pointed out in
virt-v2v docs (https://www.libguestfs.org/virt-v2v.1.html).

The secret should be provided in the destination namespace, the key
should be `luks` and the values should be the arguments provided to
virt-v2v, such as:

```
UUID:key:passphrase
UUID:clevis
```

Signed-off-by: Liran Rotenberg <[email protected]>
  • Loading branch information
liranr23 committed Dec 10, 2023
1 parent 5f52229 commit 52bf346
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
39 changes: 39 additions & 0 deletions operator/config/crd/bases/forklift.konveyor.io_plans.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,45 @@ spec:
- destination
- source
type: object
secret:
description: LUKs keys for virt-v2v (https://www.libguestfs.org/virt-v2v.1.html)
References a secret containing credentials and other confidential
information.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of
an entire object, this string should contain a valid JSON/Go
field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen
only to have some well-defined way of referencing a part of
an object. TODO: this design is not final and this field is
subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
x-kubernetes-map-type: atomic
targetNamespace:
description: Target namespace.
type: string
Expand Down
5 changes: 5 additions & 0 deletions pkg/apis/forklift/v1beta1/plan.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ type PlanSpec struct {
TransferNetwork *core.ObjectReference `json:"transferNetwork,omitempty"`
// Whether this plan should be archived.
Archived bool `json:"archived,omitempty"`
// LUKs keys for virt-v2v (https://www.libguestfs.org/virt-v2v.1.html)
// References a secret containing credentials and
// other confidential information.
// +optional
LUKS core.ObjectReference `json:"secret" ref:"Secret"`
}

// Find a planned VM.
Expand Down
1 change: 1 addition & 0 deletions pkg/apis/forklift/v1beta1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 52bf346

Please sign in to comment.