Skip to content

Commit

Permalink
Added controller for running trex performance
Browse files Browse the repository at this point in the history
This addition should be flexible enough to run with any container that has an ansible playbook to run in it
  • Loading branch information
Ella Shulman committed May 21, 2024
1 parent fabc0f5 commit be7bba3
Show file tree
Hide file tree
Showing 15 changed files with 1,715 additions and 0 deletions.
242 changes: 242 additions & 0 deletions api/bases/test.openstack.org_trexperformances.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: trexperformances.test.openstack.org
spec:
group: test.openstack.org
names:
kind: TrexPerformance
listKind: TrexPerformanceList
plural: trexperformances
singular: trexperformance
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
description: TrexPerformanceStatus is the Schema for the TrexPerformanceStatus
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: TrexPerformanceSpec defines the desired state of TrexPerformance
properties:
ansibleExtraVars:
default: ""
description: AnsibleExtraVars - string to pass parameters to ansible
using
type: string
ansibleVarFiles:
default: ""
description: AnsibleVarFiles - interface to create ansible var files
Those get added to the service config dir in /etc/test_operator/<file>
and passed to the ansible command using -e @/etc/test_operator/<file>
type: string
backoffLimit:
default: 0
description: BackoffLimimt allows to define the maximum number of
retried executions (defaults to 6).
format: int32
type: integer
computeSSHKeySecretName:
default: dataplane-ansible-ssh-private-key-secret
description: ComputeSSHKeySecretName is the name of the k8s secret
that contains an ssh key for computes. The key is mounted to ~/.ssh/id_ecdsa
in the tempest pod
type: string
containerImage:
default: quay.io/podified-antelope-centos9/openstack-trex-perf:current-podified
description: Container image for TrexPerformance
type: string
debug:
default: false
description: Run ansible playbook with -vvvv
type: boolean
kubeconfigSecretName:
default: ""
description: Name of a secret that contains a kubeconfig. The kubeconfig
is mounted under /var/lib/TrexPerformance/.kube/config in the test
pod.
type: string
openStackConfigMap:
default: openstack-config
description: OpenStackConfigMap is the name of the ConfigMap containing
the clouds.yaml
type: string
openStackConfigSecret:
default: openstack-config-secret
description: OpenStackConfigSecret is the name of the Secret containing
the secure.yaml
type: string
storageClass:
default: local-storage
description: StorageClass used to create PVCs that store the logs
type: string
workflow:
description: A parameter that contains a workflow definition.
items:
properties:
AnsibleExtraVars:
default: ""
description: AnsibleExtraVars - interface to pass parameters
to ansible using -e
type: string
AnsibleVarFiles:
default: ""
description: AnsibleVarFiles - interface to create ansible var
files Those get added to the service config dir in /etc/test_operator/<file>
and passed to the ansible command using -e @/etc/test_operator/<file>
type: string
ComputeSSHKeySecretName:
default: dataplane-ansible-ssh-private-key-secret
description: ComputeSSHKeySecretName is the name of the k8s
secret that contains an ssh key for computes. The key is mounted
to ~/.ssh/id_ecdsa in the tempest pod
type: string
WorkloadSSHKeySecretName:
default: ""
description: WorkloadSSHKeySecretName is the name of the k8s
secret that contains an ssh key for the performance workload.
The key is mounted to ~/test_keypair.key in the tempest pod
type: string
backoffLimit:
default: 0
description: BackoffLimimt allows to define the maximum number
of retried executions (defaults to 6).
format: int32
type: integer
containerImage:
default: quay.io/podified-antelope-centos9/openstack-trex-performance:current-podified
description: Container image for TrexPerformance
type: string
debug:
default: false
description: Run ansible playbook with -vvvv
type: boolean
kubeconfigSecretName:
default: ""
description: Name of a secret that contains a kubeconfig. The
kubeconfig is mounted under /var/lib/TrexPerformance/.kube/config
in the test pod.
type: string
openStackConfigMap:
default: openstack-config
description: OpenStackConfigMap is the name of the ConfigMap
containing the clouds.yaml
type: string
openStackConfigSecret:
default: openstack-config-secret
description: OpenStackConfigSecret is the name of the Secret
containing the secure.yaml
type: string
stepName:
default: ""
description: A parameter that contains a definition of a single
workflow step.
type: string
storageClass:
default: local-storage
description: StorageClass used to create PVCs that store the
logs
type: string
required:
- ComputeSSHKeySecretName
- WorkloadSSHKeySecretName
- openStackConfigMap
- openStackConfigSecret
- stepName
- storageClass
type: object
type: array
workloadSSHKeySecretName:
default: ""
description: WorkloadSSHKeySecretName is the name of the k8s secret
that contains an ssh key for the performance workload. The key is
mounted to ~/test_keypair.key in the tempest pod
type: string
required:
- computeSSHKeySecretName
- openStackConfigMap
- openStackConfigSecret
- storageClass
- workloadSSHKeySecretName
type: object
status:
description: TrexPerformanceStatus defines the observed state of TrexPerformance
properties:
conditions:
description: Conditions
items:
description: Condition defines an observation of a API resource
operational state.
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another. This should be when the underlying condition changed.
If that is not known, then using the time when the API field
changed is acceptable.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition
in CamelCase.
type: string
severity:
description: Severity provides a classification of Reason code,
so the current situation is immediately understandable and
could act accordingly. It is meant for situations where Status=False
and it should be indicated if it is just informational, warning
(next reconciliation might fix it) or an error (e.g. DB create
issue and no actions to automatically resolve the issue can/should
be done). For conditions where Status=Unknown or Status=True
the Severity should be SeverityNone.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of condition in CamelCase.
type: string
required:
- lastTransitionTime
- status
- type
type: object
type: array
hash:
additionalProperties:
type: string
description: Map of hashes to track e.g. job status
type: object
networkAttachments:
additionalProperties:
items:
type: string
type: array
description: NetworkAttachments status of the deployment pods
type: object
type: object
type: object
served: true
storage: true
subresources:
status: {}
Loading

0 comments on commit be7bba3

Please sign in to comment.