Skip to content
Snippets Groups Projects
Commit 5d368035 authored by Benedikt Wetzel's avatar Benedikt Wetzel
Browse files

Use GenericKubernetesResource instead of CustomResource<*,*> and clean up

parent cd7766f7
No related branches found
No related tags found
1 merge request!265Change patcher signatur
Pipeline #7677 passed
Showing
with 4 additions and 46 deletions
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.client.utils.Serialization
/**
......@@ -9,9 +8,6 @@ import io.fabric8.kubernetes.client.utils.Serialization
*
* An AbstractPatcher is created with up to three parameters.
*
* @param k8sResource The Kubernetes resource to be patched.
* @param container *(optional)* The name of the container to be patched
* @param variableName *(optional)* The variable name to be patched
*
*
* **For example** to patch the load dimension of a load generator, the patcher should be created as follow:
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
/**
* The DataVolumeLoadGeneratorReplicaPatcher takes the total load that should be generated
......@@ -11,7 +10,6 @@ import io.fabric8.kubernetes.api.model.KubernetesResource
* The number of instances are set for the load generator and the given variable is set to the
* load per instance.
*
* @property k8sResource Kubernetes resource to be patched.
* @property maxVolume per load generator instance
* @property container Container to be patched.
* @property variableName Name of the environment variable to be patched.
......
......@@ -3,14 +3,11 @@ package theodolite.patcher
import io.fabric8.kubernetes.api.model.Container
import io.fabric8.kubernetes.api.model.EnvVar
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.client.utils.Serialization
/**
* The EnvVarPatcher allows to modify the value of an environment variable
*
* @property k8sResource Kubernetes resource to be patched.
* @property container Container to be patched.
* @property variableName Name of the environment variable to be patched.
*/
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.utils.Serialization
......@@ -9,7 +8,6 @@ import io.fabric8.kubernetes.client.utils.Serialization
/**
* The Image patcher allows to change the image of a container.
*
* @param k8sResource Kubernetes resource to be patched.
* @param container Container to be patched.
*/
class ImagePatcher(
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.ConfigMap
import io.fabric8.kubernetes.api.model.GenericKubernetesResource
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.Service
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.CustomResource
import io.fabric8.kubernetes.client.utils.Serialization
class LabelPatcher(
val variableName: String) :
......@@ -40,7 +38,7 @@ class LabelPatcher(
}
resource.metadata.labels[this.variableName] = value
}
is CustomResource<*, *> -> {
is GenericKubernetesResource -> {
if (resource.metadata.labels == null) {
resource.metadata.labels = mutableMapOf()
}
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.utils.Serialization
/**
* This patcher is able to set the `spec.selector.matchLabels` for a `Deployment` or `StatefulSet` Kubernetes resource.
*
* @property k8sResource The Kubernetes manifests to patch
* @property variableName The matchLabel which should be set
*/
class MatchLabelPatcher(
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.ConfigMap
import io.fabric8.kubernetes.api.model.GenericKubernetesResource
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.Service
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.CustomResource
import io.fabric8.kubernetes.client.utils.Serialization
class NamePatcher : AbstractPatcher() {
......@@ -28,7 +26,7 @@ class NamePatcher : AbstractPatcher() {
is io.fabric8.kubernetes.api.model.networking.v1.Ingress -> {
resource.metadata.name = value
}
is CustomResource<*, *> -> {
is GenericKubernetesResource -> {
resource.metadata.name = value
}
}
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.client.utils.Serialization
/**
* The Node selector patcher make it possible to set the NodeSelector of a Kubernetes deployment.
*
* @param k8sResource Kubernetes resource to be patched.
* @param variableName The `label-key` of the node for which the `label-value` is to be patched.
*/
class NodeSelectorPatcher(
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.client.utils.Serialization
import kotlin.math.pow
class NumNestedGroupsLoadGeneratorReplicaPatcher(
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.client.utils.Serialization
class NumSensorsLoadGeneratorReplicaPatcher(
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.quarkus.runtime.annotations.RegisterForReflection
/**
......@@ -15,7 +14,6 @@ interface Patcher {
* The patch method modifies a value in the definition of a
* Kubernetes resource.
*
* @param T The type of value
* @param value The value to be used.
*/
fun patch(resources: List<HasMetadata>, value: String) : List<HasMetadata>
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import theodolite.util.InvalidPatcherConfigurationException
import theodolite.util.PatcherDefinition
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.client.utils.Serialization
/**
* The Replica [Patcher] modifies the number of replicas for the given Kubernetes deployment.
......
......@@ -3,7 +3,6 @@ package theodolite.patcher
import io.fabric8.kubernetes.api.model.*
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.utils.Serialization
import theodolite.util.InvalidPatcherConfigurationException
/**
......
......@@ -3,13 +3,11 @@ package theodolite.patcher
import io.fabric8.kubernetes.api.model.*
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.utils.Serialization
import theodolite.util.InvalidPatcherConfigurationException
/**
* The Resource request [Patcher] set resource limits for deployments and statefulSets.
*
* @param k8sResource Kubernetes resource to be patched.
* @param container Container to be patched.
* @param requestedResource The resource to be requested (e.g. **cpu or memory**)
*/
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.client.utils.Serialization
/**
* The Scheduler name [Patcher] make it possible to set the scheduler which should
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.Service
import io.fabric8.kubernetes.client.utils.Serialization
class ServiceSelectorPatcher(
private var variableName: String
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.utils.Serialization
/**
* This patcher is able to set the field `spec.template.metadata.labels` for a `Deployment` or `StatefulSet` Kubernetes resource.
......
package theodolite.patcher
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.utils.Serialization
class VolumesConfigMapPatcher(private var volumeName: String
) : AbstractPatcher() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment