diff --git a/.reuse/dep5 b/.reuse/dep5 index 19dbee26f..c694686d5 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -651,6 +651,10 @@ Files: crd-catalog/kubeshop/testkube-operator/* Copyright: The kubeshop/testkube-operator Authors License: MIT +Files: crd-catalog/kubev2v/forklift/* +Copyright: The kubev2v/forklift Authors +License: Apache-2.0 + Files: crd-catalog/kubevious/workload-operator/* Copyright: The kubevious/workload-operator Authors License: Apache-2.0 diff --git a/code-generator/src/catalog.rs b/code-generator/src/catalog.rs index 4faa0ec77..9b5a6756d 100644 --- a/code-generator/src/catalog.rs +++ b/code-generator/src/catalog.rs @@ -1652,6 +1652,22 @@ pub const CRD_V1_SOURCES: &'static [UpstreamSource] = &[ "https://github.com/kubeshop/testkube-operator/blob/develop/config/crd/bases/tests.testkube.io_testtriggers.yaml", ], }, + UpstreamSource { + project_name: "kubev2v/forklift", + license: APACHE_V2, + urls: &[ + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_forkliftcontrollers.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_hooks.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_hosts.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_migrations.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_networkmaps.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_openstackvolumepopulators.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_ovirtvolumepopulators.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_plans.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_providers.yaml", + "https://github.com/kubev2v/forklift/blob/main/operator/config/crd/bases/forklift.konveyor.io_storagemaps.yaml", + ], + }, UpstreamSource { project_name: "kubevious/workload-operator", license: APACHE_V2, diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/forkliftcontrollers.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/forkliftcontrollers.yaml new file mode 100644 index 000000000..3944907fe --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/forkliftcontrollers.yaml @@ -0,0 +1,39 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + name: "forkliftcontrollers.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "ForkliftController" + listKind: "ForkliftControllerList" + plural: "forkliftcontrollers" + singular: "forkliftcontroller" + scope: "Namespaced" + versions: + - name: "v1beta1" + schema: + openAPIV3Schema: + description: "ForkliftController is the Schema for the forkliftcontrollers API" + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "Spec defines the desired state of ForkliftController" + type: "object" + x-kubernetes-preserve-unknown-fields: true + status: + description: "Status defines the observed state of ForkliftController" + type: "object" + x-kubernetes-preserve-unknown-fields: true + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hooks.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hooks.yaml new file mode 100644 index 000000000..2d7f58a6d --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hooks.yaml @@ -0,0 +1,109 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "hooks.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "Hook" + listKind: "HookList" + plural: "hooks" + singular: "hook" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "Ready" + type: "string" + - jsonPath: ".spec.image" + name: "Image" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "Age" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + description: "Hook is the Schema for the hooks API" + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "Hook specification." + properties: + deadline: + description: "Hook deadline in seconds." + format: "int64" + type: "integer" + image: + description: "Image to run." + type: "string" + playbook: + description: "A base64 encoded Ansible playbook." + type: "string" + serviceAccount: + description: "Service account." + type: "string" + required: + - "image" + type: "object" + status: + description: "Hook status." + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hosts.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hosts.yaml new file mode 100644 index 000000000..8f32eeb64 --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hosts.yaml @@ -0,0 +1,167 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "hosts.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "Host" + listKind: "HostList" + plural: "hosts" + singular: "host" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "READY" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='ConnectionTestSucceeded')].status" + name: "CONNECTED" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "AGE" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "HostSpec defines the desired state of Host" + properties: + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + ipAddress: + description: "IP address used for disk transfer." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + provider: + description: "Provider" + 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" + secret: + description: "Credentials." + 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" + thumbprint: + description: "Certificate SHA-1 fingerprint, called thumbprint by VMware." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + required: + - "ipAddress" + - "provider" + - "secret" + type: "object" + status: + description: "HostStatus defines the observed state of Host" + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/migrations.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/migrations.yaml new file mode 100644 index 000000000..654191d46 --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/migrations.yaml @@ -0,0 +1,442 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "migrations.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "Migration" + listKind: "MigrationList" + plural: "migrations" + singular: "migration" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "READY" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Running')].status" + name: "RUNNING" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Succeeded')].status" + name: "SUCCEEDED" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Failed')].status" + name: "FAILED" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "AGE" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "MigrationSpec defines the desired state of Migration" + properties: + cancel: + description: "List of VMs which will have their imports canceled." + items: + description: "Source reference. Either the ID or Name must be specified." + properties: + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + type: "object" + type: "array" + cutover: + description: "Date and time to finalize a warm migration. If present, this will override the value set on the Plan." + format: "date-time" + type: "string" + plan: + description: "Reference to the associated Plan." + 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" + required: + - "plan" + type: "object" + status: + description: "MigrationStatus defines the observed state of Migration" + properties: + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + vms: + description: "VM status" + items: + description: "VM Status" + properties: + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + error: + description: "Errors" + properties: + phase: + type: "string" + reasons: + items: + type: "string" + type: "array" + required: + - "phase" + - "reasons" + type: "object" + hooks: + description: "Enable hooks." + items: + description: "Plan hook." + properties: + hook: + description: "Hook reference." + 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" + step: + description: "Pipeline step." + type: "string" + required: + - "hook" + - "step" + type: "object" + type: "array" + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + phase: + description: "Phase" + type: "string" + pipeline: + description: "Migration pipeline." + items: + description: "Pipeline step." + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations." + type: "object" + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + description: + description: "Name" + type: "string" + error: + description: "Error." + properties: + phase: + type: "string" + reasons: + items: + type: "string" + type: "array" + required: + - "phase" + - "reasons" + type: "object" + name: + description: "Name." + type: "string" + phase: + description: "Phase" + type: "string" + progress: + description: "Progress." + properties: + completed: + description: "Completed units." + format: "int64" + type: "integer" + total: + description: "Total units." + format: "int64" + type: "integer" + required: + - "completed" + - "total" + type: "object" + reason: + description: "Reason" + type: "string" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + tasks: + description: "Nested tasks." + items: + description: "Migration task." + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations." + type: "object" + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + description: + description: "Name" + type: "string" + error: + description: "Error." + properties: + phase: + type: "string" + reasons: + items: + type: "string" + type: "array" + required: + - "phase" + - "reasons" + type: "object" + name: + description: "Name." + type: "string" + phase: + description: "Phase" + type: "string" + progress: + description: "Progress." + properties: + completed: + description: "Completed units." + format: "int64" + type: "integer" + total: + description: "Total units." + format: "int64" + type: "integer" + required: + - "completed" + - "total" + type: "object" + reason: + description: "Reason" + type: "string" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + required: + - "name" + - "progress" + type: "object" + type: "array" + required: + - "name" + - "progress" + type: "object" + type: "array" + restorePowerState: + description: "Source VM power state before migration." + type: "string" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + warm: + description: "Warm migration status" + properties: + consecutiveFailures: + type: "integer" + failures: + type: "integer" + nextPrecopyAt: + format: "date-time" + type: "string" + precopies: + items: + description: "Precopy durations" + properties: + end: + format: "date-time" + type: "string" + snapshot: + type: "string" + start: + format: "date-time" + type: "string" + type: "object" + type: "array" + successes: + type: "integer" + required: + - "consecutiveFailures" + - "failures" + - "successes" + type: "object" + required: + - "phase" + - "pipeline" + type: "object" + type: "array" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.args b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.args new file mode 100644 index 000000000..7ab47510b --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.args @@ -0,0 +1 @@ +--derive=PartialEq diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.yaml new file mode 100644 index 000000000..b788106dd --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.yaml @@ -0,0 +1,214 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "networkmaps.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "NetworkMap" + listKind: "NetworkMapList" + plural: "networkmaps" + singular: "networkmap" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "READY" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "AGE" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "Network map spec." + properties: + map: + description: "Map." + items: + description: "Mapped network." + properties: + destination: + description: "Destination network." + properties: + name: + description: "The name." + type: "string" + namespace: + description: "The namespace (multus only)." + type: "string" + type: + description: "The network type." + enum: + - "pod" + - "multus" + type: "string" + required: + - "type" + type: "object" + source: + description: "Source network." + properties: + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + type: "object" + required: + - "destination" + - "source" + type: "object" + type: "array" + provider: + description: "Provider" + properties: + destination: + description: "Destination." + 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" + source: + description: "Source." + 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" + required: + - "destination" + - "source" + type: "object" + required: + - "map" + - "provider" + type: "object" + status: + description: "MapStatus defines the observed state of Maps." + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + references: + items: + description: "Source reference. Either the ID or Name must be specified." + properties: + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + type: "object" + type: "array" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/openstackvolumepopulators.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/openstackvolumepopulators.yaml new file mode 100644 index 000000000..13874ca3c --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/openstackvolumepopulators.yaml @@ -0,0 +1,79 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "openstackvolumepopulators.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "OpenstackVolumePopulator" + listKind: "OpenstackVolumePopulatorList" + plural: "openstackvolumepopulators" + shortNames: + - "osvp" + - "osvps" + singular: "openstackvolumepopulator" + scope: "Namespaced" + versions: + - name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + properties: + identityUrl: + type: "string" + imageId: + type: "string" + secretName: + type: "string" + transferNetwork: + description: "The network attachment definition that should be used for disk transfer." + 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" + required: + - "identityUrl" + - "imageId" + - "secretName" + type: "object" + status: + properties: + progress: + type: "string" + type: "object" + required: + - "spec" + type: "object" + served: true + storage: true diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/ovirtvolumepopulators.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/ovirtvolumepopulators.yaml new file mode 100644 index 000000000..70414308d --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/ovirtvolumepopulators.yaml @@ -0,0 +1,79 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "ovirtvolumepopulators.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "OvirtVolumePopulator" + listKind: "OvirtVolumePopulatorList" + plural: "ovirtvolumepopulators" + shortNames: + - "ovvp" + - "ovvps" + singular: "ovirtvolumepopulator" + scope: "Namespaced" + versions: + - name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + properties: + diskId: + type: "string" + engineSecretName: + type: "string" + engineUrl: + type: "string" + transferNetwork: + description: "The network attachment definition that should be used for disk transfer." + 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" + required: + - "diskId" + - "engineSecretName" + - "engineUrl" + type: "object" + status: + properties: + progress: + type: "string" + type: "object" + required: + - "spec" + type: "object" + served: true + storage: true diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml new file mode 100644 index 000000000..5934d8631 --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml @@ -0,0 +1,796 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "plans.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "Plan" + listKind: "PlanList" + plural: "plans" + singular: "plan" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "READY" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Executing')].status" + name: "EXECUTING" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Succeeded')].status" + name: "SUCCEEDED" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Failed')].status" + name: "FAILED" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "AGE" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "PlanSpec defines the desired state of Plan." + properties: + archived: + description: "Whether this plan should be archived." + type: "boolean" + description: + description: "Description" + type: "string" + map: + description: "Resource mapping." + properties: + network: + description: "Network." + 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" + storage: + description: "Storage." + 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" + required: + - "network" + - "storage" + type: "object" + preserveClusterCpuModel: + description: "Preserve the CPU model and flags the VM runs with in its oVirt cluster." + type: "boolean" + provider: + description: "Providers." + properties: + destination: + description: "Destination." + 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" + source: + description: "Source." + 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" + required: + - "destination" + - "source" + type: "object" + targetNamespace: + description: "Target namespace." + type: "string" + transferNetwork: + description: "The network attachment definition that should be used for disk transfer." + 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" + vms: + description: "List of VMs." + items: + description: "A VM listed on the plan." + properties: + hooks: + description: "Enable hooks." + items: + description: "Plan hook." + properties: + hook: + description: "Hook reference." + 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" + step: + description: "Pipeline step." + type: "string" + required: + - "hook" + - "step" + type: "object" + type: "array" + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + type: "object" + type: "array" + warm: + description: "Whether this is a warm migration." + type: "boolean" + required: + - "map" + - "provider" + - "targetNamespace" + - "vms" + type: "object" + status: + description: "PlanStatus defines the observed state of Plan." + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + migration: + description: "Migration" + properties: + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + history: + description: "History" + items: + description: "Snapshot" + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + map: + description: "Map." + properties: + network: + description: "Snapshot object reference." + properties: + generation: + format: "int64" + type: "integer" + name: + type: "string" + namespace: + type: "string" + uid: + description: "UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated." + type: "string" + required: + - "generation" + - "name" + - "namespace" + - "uid" + type: "object" + storage: + description: "Snapshot object reference." + properties: + generation: + format: "int64" + type: "integer" + name: + type: "string" + namespace: + type: "string" + uid: + description: "UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated." + type: "string" + required: + - "generation" + - "name" + - "namespace" + - "uid" + type: "object" + required: + - "network" + - "storage" + type: "object" + migration: + description: "Migration" + properties: + generation: + format: "int64" + type: "integer" + name: + type: "string" + namespace: + type: "string" + uid: + description: "UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated." + type: "string" + required: + - "generation" + - "name" + - "namespace" + - "uid" + type: "object" + plan: + description: "Plan" + properties: + generation: + format: "int64" + type: "integer" + name: + type: "string" + namespace: + type: "string" + uid: + description: "UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated." + type: "string" + required: + - "generation" + - "name" + - "namespace" + - "uid" + type: "object" + provider: + description: "Provider" + properties: + destination: + description: "Snapshot object reference." + properties: + generation: + format: "int64" + type: "integer" + name: + type: "string" + namespace: + type: "string" + uid: + description: "UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated." + type: "string" + required: + - "generation" + - "name" + - "namespace" + - "uid" + type: "object" + source: + description: "Snapshot object reference." + properties: + generation: + format: "int64" + type: "integer" + name: + type: "string" + namespace: + type: "string" + uid: + description: "UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated." + type: "string" + required: + - "generation" + - "name" + - "namespace" + - "uid" + type: "object" + required: + - "destination" + - "source" + type: "object" + required: + - "map" + - "migration" + - "plan" + - "provider" + type: "object" + type: "array" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + vms: + description: "VM status" + items: + description: "VM Status" + properties: + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + error: + description: "Errors" + properties: + phase: + type: "string" + reasons: + items: + type: "string" + type: "array" + required: + - "phase" + - "reasons" + type: "object" + hooks: + description: "Enable hooks." + items: + description: "Plan hook." + properties: + hook: + description: "Hook reference." + 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" + step: + description: "Pipeline step." + type: "string" + required: + - "hook" + - "step" + type: "object" + type: "array" + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + phase: + description: "Phase" + type: "string" + pipeline: + description: "Migration pipeline." + items: + description: "Pipeline step." + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations." + type: "object" + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + description: + description: "Name" + type: "string" + error: + description: "Error." + properties: + phase: + type: "string" + reasons: + items: + type: "string" + type: "array" + required: + - "phase" + - "reasons" + type: "object" + name: + description: "Name." + type: "string" + phase: + description: "Phase" + type: "string" + progress: + description: "Progress." + properties: + completed: + description: "Completed units." + format: "int64" + type: "integer" + total: + description: "Total units." + format: "int64" + type: "integer" + required: + - "completed" + - "total" + type: "object" + reason: + description: "Reason" + type: "string" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + tasks: + description: "Nested tasks." + items: + description: "Migration task." + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations." + type: "object" + completed: + description: "Completed timestamp." + format: "date-time" + type: "string" + description: + description: "Name" + type: "string" + error: + description: "Error." + properties: + phase: + type: "string" + reasons: + items: + type: "string" + type: "array" + required: + - "phase" + - "reasons" + type: "object" + name: + description: "Name." + type: "string" + phase: + description: "Phase" + type: "string" + progress: + description: "Progress." + properties: + completed: + description: "Completed units." + format: "int64" + type: "integer" + total: + description: "Total units." + format: "int64" + type: "integer" + required: + - "completed" + - "total" + type: "object" + reason: + description: "Reason" + type: "string" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + required: + - "name" + - "progress" + type: "object" + type: "array" + required: + - "name" + - "progress" + type: "object" + type: "array" + restorePowerState: + description: "Source VM power state before migration." + type: "string" + started: + description: "Started timestamp." + format: "date-time" + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + warm: + description: "Warm migration status" + properties: + consecutiveFailures: + type: "integer" + failures: + type: "integer" + nextPrecopyAt: + format: "date-time" + type: "string" + precopies: + items: + description: "Precopy durations" + properties: + end: + format: "date-time" + type: "string" + snapshot: + type: "string" + start: + format: "date-time" + type: "string" + type: "object" + type: "array" + successes: + type: "integer" + required: + - "consecutiveFailures" + - "failures" + - "successes" + type: "object" + required: + - "phase" + - "pipeline" + type: "object" + type: "array" + type: "object" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/providers.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/providers.yaml new file mode 100644 index 000000000..0c056acaf --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/providers.yaml @@ -0,0 +1,151 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "providers.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "Provider" + listKind: "ProviderList" + plural: "providers" + singular: "provider" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".spec.type" + name: "TYPE" + type: "string" + - jsonPath: ".status.phase" + name: "STATUS" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "READY" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='ConnectionTestSucceeded')].status" + name: "CONNECTED" + type: "string" + - jsonPath: ".status.conditions[?(@.type=='InventoryCreated')].status" + name: "INVENTORY" + type: "string" + - jsonPath: ".spec.url" + name: "URL" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "AGE" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "Defines the desired state of Provider." + properties: + secret: + description: "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" + settings: + additionalProperties: + type: "string" + description: "Provider settings." + type: "object" + type: + description: "Provider type." + type: "string" + url: + description: "The provider URL. Empty may be used for the `host` provider." + type: "string" + required: + - "secret" + - "type" + type: "object" + status: + description: "ProviderStatus defines the observed state of Provider" + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + fingerprint: + description: "Fingerprint." + type: "string" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + phase: + description: "Current life cycle phase of the provider." + type: "string" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/storagemaps.yaml b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/storagemaps.yaml new file mode 100644 index 000000000..e38382c09 --- /dev/null +++ b/crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/storagemaps.yaml @@ -0,0 +1,218 @@ +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" +metadata: + annotations: + controller-gen.kubebuilder.io/version: "v0.10.0" + name: "storagemaps.forklift.konveyor.io" +spec: + group: "forklift.konveyor.io" + names: + kind: "StorageMap" + listKind: "StorageMapList" + plural: "storagemaps" + singular: "storagemap" + scope: "Namespaced" + versions: + - additionalPrinterColumns: + - jsonPath: ".status.conditions[?(@.type=='Ready')].status" + name: "READY" + type: "string" + - jsonPath: ".metadata.creationTimestamp" + name: "AGE" + type: "date" + name: "v1beta1" + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources" + type: "string" + kind: + description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + type: "string" + metadata: + type: "object" + spec: + description: "Storage map spec." + properties: + map: + description: "Map." + items: + description: "Mapped storage." + properties: + destination: + description: "Destination storage." + properties: + accessMode: + description: "Access mode." + enum: + - "ReadWriteOnce" + - "ReadWriteMany" + - "ReadOnlyMany" + type: "string" + storageClass: + description: "A storage class." + type: "string" + volumeMode: + description: "Volume mode." + enum: + - "Filesystem" + - "Block" + type: "string" + required: + - "storageClass" + type: "object" + source: + description: "Source storage." + properties: + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + type: "object" + required: + - "destination" + - "source" + type: "object" + type: "array" + provider: + description: "Provider" + properties: + destination: + description: "Destination." + 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" + source: + description: "Source." + 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" + required: + - "destination" + - "source" + type: "object" + required: + - "map" + - "provider" + type: "object" + status: + description: "MapStatus defines the observed state of Maps." + properties: + conditions: + description: "List of conditions." + items: + description: "Condition" + properties: + category: + description: "The condition category." + type: "string" + durable: + description: "The condition is durable - never un-staged." + type: "boolean" + items: + description: "A list of items referenced in the `Message`." + items: + type: "string" + type: "array" + lastTransitionTime: + description: "When the last status transition occurred." + format: "date-time" + type: "string" + message: + description: "The human readable description of the condition." + type: "string" + reason: + description: "The reason for the condition or transition." + type: "string" + status: + description: "The condition status [true,false]." + type: "string" + type: + description: "The condition type." + type: "string" + required: + - "category" + - "lastTransitionTime" + - "status" + - "type" + type: "object" + type: "array" + observedGeneration: + description: "The most recent generation observed by the controller." + format: "int64" + type: "integer" + references: + items: + description: "Source reference. Either the ID or Name must be specified." + properties: + id: + description: "The object ID. vsphere: The managed object ID." + type: "string" + name: + description: "An object Name. vsphere: A qualified name." + type: "string" + namespace: + description: "The VM Namespace Only relevant for an openshift source." + type: "string" + type: + description: "Type used to qualify the name." + type: "string" + type: "object" + type: "array" + type: "object" + type: "object" + served: true + storage: true + subresources: + status: {} diff --git a/kube-custom-resources-rs/Cargo.toml b/kube-custom-resources-rs/Cargo.toml index 28fa6f1f8..8542e0cac 100644 --- a/kube-custom-resources-rs/Cargo.toml +++ b/kube-custom-resources-rs/Cargo.toml @@ -139,6 +139,7 @@ flink_apache_org = [] flow_volcano_sh = [] flows_netobserv_io = [] flux_framework_org = [] +forklift_konveyor_io = [] gateway_networking_k8s_io = [] gateway_nginx_org = [] getambassador_io = [] diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/mod.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/mod.rs new file mode 100644 index 000000000..9f64fc82d --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/mod.rs @@ -0,0 +1 @@ +pub mod v1beta1; diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/forkliftcontrollers.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/forkliftcontrollers.rs new file mode 100644 index 000000000..fc2454269 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/forkliftcontrollers.rs @@ -0,0 +1,8 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/forkliftcontrollers.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + + + + + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/hooks.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/hooks.rs new file mode 100644 index 000000000..c3c3e6eb3 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/hooks.rs @@ -0,0 +1,65 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hooks.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; + +/// Hook specification. +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "Hook", plural = "hooks")] +#[kube(namespaced)] +#[kube(status = "HookStatus")] +#[kube(schema = "disabled")] +pub struct HookSpec { + /// Hook deadline in seconds. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub deadline: Option, + /// Image to run. + pub image: String, + /// A base64 encoded Ansible playbook. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub playbook: Option, + /// Service account. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")] + pub service_account: Option, +} + +/// Hook status. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct HookStatus { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct HookStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/hosts.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/hosts.rs new file mode 100644 index 000000000..841156b1c --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/hosts.rs @@ -0,0 +1,128 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/hosts.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; + +/// HostSpec defines the desired state of Host +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "Host", plural = "hosts")] +#[kube(namespaced)] +#[kube(status = "HostStatus")] +#[kube(schema = "disabled")] +pub struct HostSpec { + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// IP address used for disk transfer. + #[serde(rename = "ipAddress")] + pub ip_address: String, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Provider + pub provider: HostProvider, + /// Credentials. + pub secret: HostSecret, + /// Certificate SHA-1 fingerprint, called thumbprint by VMware. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub thumbprint: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Provider +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct HostProvider { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Credentials. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct HostSecret { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// HostStatus defines the observed state of Host +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct HostStatus { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct HostStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/migrations.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/migrations.rs new file mode 100644 index 000000000..d81ab6943 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/migrations.rs @@ -0,0 +1,345 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/migrations.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; +use std::collections::BTreeMap; + +/// MigrationSpec defines the desired state of Migration +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "Migration", plural = "migrations")] +#[kube(namespaced)] +#[kube(status = "MigrationStatus")] +#[kube(schema = "disabled")] +pub struct MigrationSpec { + /// List of VMs which will have their imports canceled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cancel: Option>, + /// Date and time to finalize a warm migration. If present, this will override the value set on the Plan. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cutover: Option, + /// Reference to the associated Plan. + pub plan: MigrationPlan, +} + +/// Source reference. Either the ID or Name must be specified. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationCancel { + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Reference to the associated Plan. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationPlan { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// MigrationStatus defines the observed state of Migration +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatus { + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, + /// VM status + #[serde(default, skip_serializing_if = "Option::is_none")] + pub vms: Option>, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// VM Status +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVms { + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// Errors + #[serde(default, skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Enable hooks. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub hooks: Option>, + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Phase + pub phase: String, + /// Migration pipeline. + pub pipeline: Vec, + /// Source VM power state before migration. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "restorePowerState")] + pub restore_power_state: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + /// Warm migration status + #[serde(default, skip_serializing_if = "Option::is_none")] + pub warm: Option, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Errors +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsError { + pub phase: String, + pub reasons: Vec, +} + +/// Plan hook. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsHooks { + /// Hook reference. + pub hook: MigrationStatusVmsHooksHook, + /// Pipeline step. + pub step: String, +} + +/// Hook reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsHooksHook { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Pipeline step. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsPipeline { + /// Annotations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// Name + #[serde(default, skip_serializing_if = "Option::is_none")] + pub description: Option, + /// Error. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Name. + pub name: String, + /// Phase + #[serde(default, skip_serializing_if = "Option::is_none")] + pub phase: Option, + /// Progress. + pub progress: MigrationStatusVmsPipelineProgress, + /// Reason + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, + /// Nested tasks. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tasks: Option>, +} + +/// Error. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsPipelineError { + pub phase: String, + pub reasons: Vec, +} + +/// Progress. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsPipelineProgress { + /// Completed units. + pub completed: i64, + /// Total units. + pub total: i64, +} + +/// Migration task. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsPipelineTasks { + /// Annotations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// Name + #[serde(default, skip_serializing_if = "Option::is_none")] + pub description: Option, + /// Error. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Name. + pub name: String, + /// Phase + #[serde(default, skip_serializing_if = "Option::is_none")] + pub phase: Option, + /// Progress. + pub progress: MigrationStatusVmsPipelineTasksProgress, + /// Reason + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, +} + +/// Error. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsPipelineTasksError { + pub phase: String, + pub reasons: Vec, +} + +/// Progress. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsPipelineTasksProgress { + /// Completed units. + pub completed: i64, + /// Total units. + pub total: i64, +} + +/// Warm migration status +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsWarm { + #[serde(rename = "consecutiveFailures")] + pub consecutive_failures: i64, + pub failures: i64, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nextPrecopyAt")] + pub next_precopy_at: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub precopies: Option>, + pub successes: i64, +} + +/// Precopy durations +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MigrationStatusVmsWarmPrecopies { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub end: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub snapshot: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub start: Option, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/mod.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/mod.rs new file mode 100644 index 000000000..dbbd80fee --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/mod.rs @@ -0,0 +1,10 @@ +pub mod forkliftcontrollers; +pub mod hooks; +pub mod hosts; +pub mod migrations; +pub mod networkmaps; +pub mod openstackvolumepopulators; +pub mod ovirtvolumepopulators; +pub mod plans; +pub mod providers; +pub mod storagemaps; diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/networkmaps.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/networkmaps.rs new file mode 100644 index 000000000..84ab93568 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/networkmaps.rs @@ -0,0 +1,187 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/networkmaps.yaml --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; + +/// Network map spec. +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "NetworkMap", plural = "networkmaps")] +#[kube(namespaced)] +#[kube(status = "NetworkMapStatus")] +#[kube(schema = "disabled")] +pub struct NetworkMapSpec { + /// Map. + pub map: Vec, + /// Provider + pub provider: NetworkMapProvider, +} + +/// Mapped network. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapMap { + /// Destination network. + pub destination: NetworkMapMapDestination, + /// Source network. + pub source: NetworkMapMapSource, +} + +/// Destination network. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapMapDestination { + /// The name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The namespace (multus only). + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// The network type. + #[serde(rename = "type")] + pub r#type: NetworkMapMapDestinationType, +} + +/// Destination network. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum NetworkMapMapDestinationType { + #[serde(rename = "pod")] + Pod, + #[serde(rename = "multus")] + Multus, +} + +/// Source network. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapMapSource { + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Provider +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapProvider { + /// Destination. + pub destination: NetworkMapProviderDestination, + /// Source. + pub source: NetworkMapProviderSource, +} + +/// Destination. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapProviderDestination { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Source. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapProviderSource { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// MapStatus defines the observed state of Maps. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapStatus { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub references: Option>, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Source reference. Either the ID or Name must be specified. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct NetworkMapStatusReferences { + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/openstackvolumepopulators.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/openstackvolumepopulators.rs new file mode 100644 index 000000000..25a17968b --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/openstackvolumepopulators.rs @@ -0,0 +1,55 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/openstackvolumepopulators.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; + +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "OpenstackVolumePopulator", plural = "openstackvolumepopulators")] +#[kube(namespaced)] +#[kube(schema = "disabled")] +pub struct OpenstackVolumePopulatorSpec { + #[serde(rename = "identityUrl")] + pub identity_url: String, + #[serde(rename = "imageId")] + pub image_id: String, + #[serde(rename = "secretName")] + pub secret_name: String, + /// The network attachment definition that should be used for disk transfer. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "transferNetwork")] + pub transfer_network: Option, +} + +/// The network attachment definition that should be used for disk transfer. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OpenstackVolumePopulatorTransferNetwork { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OpenstackVolumePopulatorStatus { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub progress: Option, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/ovirtvolumepopulators.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/ovirtvolumepopulators.rs new file mode 100644 index 000000000..7534050b5 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/ovirtvolumepopulators.rs @@ -0,0 +1,55 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/ovirtvolumepopulators.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; + +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "OvirtVolumePopulator", plural = "ovirtvolumepopulators")] +#[kube(namespaced)] +#[kube(schema = "disabled")] +pub struct OvirtVolumePopulatorSpec { + #[serde(rename = "diskId")] + pub disk_id: String, + #[serde(rename = "engineSecretName")] + pub engine_secret_name: String, + #[serde(rename = "engineUrl")] + pub engine_url: String, + /// The network attachment definition that should be used for disk transfer. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "transferNetwork")] + pub transfer_network: Option, +} + +/// The network attachment definition that should be used for disk transfer. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OvirtVolumePopulatorTransferNetwork { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OvirtVolumePopulatorStatus { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub progress: Option, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs new file mode 100644 index 000000000..277771094 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/plans.rs @@ -0,0 +1,653 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/plans.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; +use std::collections::BTreeMap; + +/// PlanSpec defines the desired state of Plan. +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "Plan", plural = "plans")] +#[kube(namespaced)] +#[kube(status = "PlanStatus")] +#[kube(schema = "disabled")] +pub struct PlanSpec { + /// Whether this plan should be archived. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub archived: Option, + /// Description + #[serde(default, skip_serializing_if = "Option::is_none")] + pub description: Option, + /// Resource mapping. + pub map: PlanMap, + /// Preserve the CPU model and flags the VM runs with in its oVirt cluster. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preserveClusterCpuModel")] + pub preserve_cluster_cpu_model: Option, + /// Providers. + pub provider: PlanProvider, + /// Target namespace. + #[serde(rename = "targetNamespace")] + pub target_namespace: String, + /// The network attachment definition that should be used for disk transfer. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "transferNetwork")] + pub transfer_network: Option, + /// List of VMs. + pub vms: Vec, + /// Whether this is a warm migration. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub warm: Option, +} + +/// Resource mapping. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanMap { + /// Network. + pub network: PlanMapNetwork, + /// Storage. + pub storage: PlanMapStorage, +} + +/// Network. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanMapNetwork { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Storage. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanMapStorage { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Providers. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanProvider { + /// Destination. + pub destination: PlanProviderDestination, + /// Source. + pub source: PlanProviderSource, +} + +/// Destination. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanProviderDestination { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Source. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanProviderSource { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// The network attachment definition that should be used for disk transfer. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanTransferNetwork { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// A VM listed on the plan. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanVms { + /// Enable hooks. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub hooks: Option>, + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Plan hook. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanVmsHooks { + /// Hook reference. + pub hook: PlanVmsHooksHook, + /// Pipeline step. + pub step: String, +} + +/// Hook reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanVmsHooksHook { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// PlanStatus defines the observed state of Plan. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatus { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// Migration + #[serde(default, skip_serializing_if = "Option::is_none")] + pub migration: Option, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Migration +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigration { + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// History + #[serde(default, skip_serializing_if = "Option::is_none")] + pub history: Option>, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, + /// VM status + #[serde(default, skip_serializing_if = "Option::is_none")] + pub vms: Option>, +} + +/// Snapshot +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistory { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// Map. + pub map: PlanStatusMigrationHistoryMap, + /// Migration + pub migration: PlanStatusMigrationHistoryMigration, + /// Plan + pub plan: PlanStatusMigrationHistoryPlan, + /// Provider + pub provider: PlanStatusMigrationHistoryProvider, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Map. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryMap { + /// Snapshot object reference. + pub network: PlanStatusMigrationHistoryMapNetwork, + /// Snapshot object reference. + pub storage: PlanStatusMigrationHistoryMapStorage, +} + +/// Snapshot object reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryMapNetwork { + pub generation: i64, + pub name: String, + pub namespace: String, + /// UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated. + pub uid: String, +} + +/// Snapshot object reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryMapStorage { + pub generation: i64, + pub name: String, + pub namespace: String, + /// UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated. + pub uid: String, +} + +/// Migration +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryMigration { + pub generation: i64, + pub name: String, + pub namespace: String, + /// UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated. + pub uid: String, +} + +/// Plan +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryPlan { + pub generation: i64, + pub name: String, + pub namespace: String, + /// UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated. + pub uid: String, +} + +/// Provider +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryProvider { + /// Snapshot object reference. + pub destination: PlanStatusMigrationHistoryProviderDestination, + /// Snapshot object reference. + pub source: PlanStatusMigrationHistoryProviderSource, +} + +/// Snapshot object reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryProviderDestination { + pub generation: i64, + pub name: String, + pub namespace: String, + /// UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated. + pub uid: String, +} + +/// Snapshot object reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationHistoryProviderSource { + pub generation: i64, + pub name: String, + pub namespace: String, + /// UID is a type that holds unique ID values, including UUIDs. Because we don't ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated. + pub uid: String, +} + +/// VM Status +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVms { + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// Errors + #[serde(default, skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Enable hooks. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub hooks: Option>, + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Phase + pub phase: String, + /// Migration pipeline. + pub pipeline: Vec, + /// Source VM power state before migration. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "restorePowerState")] + pub restore_power_state: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + /// Warm migration status + #[serde(default, skip_serializing_if = "Option::is_none")] + pub warm: Option, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Errors +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsError { + pub phase: String, + pub reasons: Vec, +} + +/// Plan hook. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsHooks { + /// Hook reference. + pub hook: PlanStatusMigrationVmsHooksHook, + /// Pipeline step. + pub step: String, +} + +/// Hook reference. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsHooksHook { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Pipeline step. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsPipeline { + /// Annotations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// Name + #[serde(default, skip_serializing_if = "Option::is_none")] + pub description: Option, + /// Error. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Name. + pub name: String, + /// Phase + #[serde(default, skip_serializing_if = "Option::is_none")] + pub phase: Option, + /// Progress. + pub progress: PlanStatusMigrationVmsPipelineProgress, + /// Reason + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, + /// Nested tasks. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tasks: Option>, +} + +/// Error. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsPipelineError { + pub phase: String, + pub reasons: Vec, +} + +/// Progress. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsPipelineProgress { + /// Completed units. + pub completed: i64, + /// Total units. + pub total: i64, +} + +/// Migration task. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsPipelineTasks { + /// Annotations. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub annotations: Option>, + /// Completed timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub completed: Option, + /// Name + #[serde(default, skip_serializing_if = "Option::is_none")] + pub description: Option, + /// Error. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub error: Option, + /// Name. + pub name: String, + /// Phase + #[serde(default, skip_serializing_if = "Option::is_none")] + pub phase: Option, + /// Progress. + pub progress: PlanStatusMigrationVmsPipelineTasksProgress, + /// Reason + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// Started timestamp. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub started: Option, +} + +/// Error. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsPipelineTasksError { + pub phase: String, + pub reasons: Vec, +} + +/// Progress. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsPipelineTasksProgress { + /// Completed units. + pub completed: i64, + /// Total units. + pub total: i64, +} + +/// Warm migration status +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsWarm { + #[serde(rename = "consecutiveFailures")] + pub consecutive_failures: i64, + pub failures: i64, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nextPrecopyAt")] + pub next_precopy_at: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub precopies: Option>, + pub successes: i64, +} + +/// Precopy durations +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct PlanStatusMigrationVmsWarmPrecopies { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub end: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub snapshot: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub start: Option, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/providers.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/providers.rs new file mode 100644 index 000000000..d03f8850d --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/providers.rs @@ -0,0 +1,98 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/providers.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; +use std::collections::BTreeMap; + +/// Defines the desired state of Provider. +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "Provider", plural = "providers")] +#[kube(namespaced)] +#[kube(status = "ProviderStatus")] +#[kube(schema = "disabled")] +pub struct ProviderSpec { + /// References a secret containing credentials and other confidential information. + pub secret: ProviderSecret, + /// Provider settings. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub settings: Option>, + /// Provider type. + #[serde(rename = "type")] + pub r#type: String, + /// The provider URL. Empty may be used for the `host` provider. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub url: Option, +} + +/// References a secret containing credentials and other confidential information. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ProviderSecret { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// ProviderStatus defines the observed state of Provider +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ProviderStatus { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// Fingerprint. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub fingerprint: Option, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, + /// Current life cycle phase of the provider. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub phase: Option, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ProviderStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + diff --git a/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/storagemaps.rs b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/storagemaps.rs new file mode 100644 index 000000000..8de84ea43 --- /dev/null +++ b/kube-custom-resources-rs/src/forklift_konveyor_io/v1beta1/storagemaps.rs @@ -0,0 +1,193 @@ +// WARNING: generated by kopium - manual changes will be overwritten +// kopium command: kopium --docs --filename=./crd-catalog/kubev2v/forklift/forklift.konveyor.io/v1beta1/storagemaps.yaml --derive=Default --derive=PartialEq +// kopium version: 0.16.5 + +use kube::CustomResource; +use serde::{Serialize, Deserialize}; + +/// Storage map spec. +#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +#[kube(group = "forklift.konveyor.io", version = "v1beta1", kind = "StorageMap", plural = "storagemaps")] +#[kube(namespaced)] +#[kube(status = "StorageMapStatus")] +#[kube(schema = "disabled")] +pub struct StorageMapSpec { + /// Map. + pub map: Vec, + /// Provider + pub provider: StorageMapProvider, +} + +/// Mapped storage. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapMap { + /// Destination storage. + pub destination: StorageMapMapDestination, + /// Source storage. + pub source: StorageMapMapSource, +} + +/// Destination storage. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapMapDestination { + /// Access mode. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessMode")] + pub access_mode: Option, + /// A storage class. + #[serde(rename = "storageClass")] + pub storage_class: String, + /// Volume mode. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")] + pub volume_mode: Option, +} + +/// Destination storage. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum StorageMapMapDestinationAccessMode { + ReadWriteOnce, + ReadWriteMany, + ReadOnlyMany, +} + +/// Destination storage. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum StorageMapMapDestinationVolumeMode { + Filesystem, + Block, +} + +/// Source storage. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapMapSource { + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Provider +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapProvider { + /// Destination. + pub destination: StorageMapProviderDestination, + /// Source. + pub source: StorageMapProviderSource, +} + +/// Destination. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapProviderDestination { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// Source. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapProviderSource { + /// API version of the referent. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// 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. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] + pub field_path: Option, + /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// 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 + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] + pub resource_version: Option, + /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + #[serde(default, skip_serializing_if = "Option::is_none")] + pub uid: Option, +} + +/// MapStatus defines the observed state of Maps. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapStatus { + /// List of conditions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub conditions: Option>, + /// The most recent generation observed by the controller. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] + pub observed_generation: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub references: Option>, +} + +/// Condition +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapStatusConditions { + /// The condition category. + pub category: String, + /// The condition is durable - never un-staged. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub durable: Option, + /// A list of items referenced in the `Message`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub items: Option>, + /// When the last status transition occurred. + #[serde(rename = "lastTransitionTime")] + pub last_transition_time: String, + /// The human readable description of the condition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub message: Option, + /// The reason for the condition or transition. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub reason: Option, + /// The condition status [true,false]. + pub status: String, + /// The condition type. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Source reference. Either the ID or Name must be specified. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct StorageMapStatusReferences { + /// The object ID. vsphere: The managed object ID. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub id: Option, + /// An object Name. vsphere: A qualified name. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// The VM Namespace Only relevant for an openshift source. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Type used to qualify the name. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + diff --git a/kube-custom-resources-rs/src/lib.rs b/kube-custom-resources-rs/src/lib.rs index 0deb62e30..04ceb6afc 100644 --- a/kube-custom-resources-rs/src/lib.rs +++ b/kube-custom-resources-rs/src/lib.rs @@ -1004,6 +1004,20 @@ apiVersion `flows.netobserv.io/v1beta2`: apiVersion `flux-framework.org/v1alpha1`: - `MiniCluster` +## forklift_konveyor_io + +apiVersion `forklift.konveyor.io/v1beta1`: +- `ForkliftController` +- `Hook` +- `Host` +- `Migration` +- `NetworkMap` +- `OpenstackVolumePopulator` +- `OvirtVolumePopulator` +- `Plan` +- `Provider` +- `StorageMap` + ## gateway_networking_k8s_io apiVersion `gateway.networking.k8s.io/v1`: @@ -2806,6 +2820,8 @@ pub mod flow_volcano_sh; pub mod flows_netobserv_io; #[cfg(feature = "flux_framework_org")] pub mod flux_framework_org; +#[cfg(feature = "forklift_konveyor_io")] +pub mod forklift_konveyor_io; #[cfg(feature = "gateway_networking_k8s_io")] pub mod gateway_networking_k8s_io; #[cfg(feature = "gateway_nginx_org")]