apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: oneagents.dynatrace.com spec: additionalPrinterColumns: - JSONPath: .spec.apiUrl name: ApiUrl type: string - JSONPath: .spec.tokens name: Tokens type: string - JSONPath: .status.version name: Version type: string - JSONPath: .status.phase name: Phase type: string - JSONPath: .metadata.creationTimestamp name: Age type: date group: dynatrace.com names: categories: - dynatrace kind: OneAgent listKind: OneAgentList plural: oneagents singular: oneagent scope: Namespaced subresources: status: {} validation: openAPIV3Schema: description: OneAgent configures the Dynatrace OneAgent for full-stack monitoring 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: OneAgentSpec defines the desired state of OneAgent properties: apiUrl: description: Location of the Dynatrace API to connect to, including your specific environment ID type: string args: description: 'Optional: Arguments to the OneAgent installer' items: type: string type: array disableAgentUpdate: description: Disable automatic restarts of OneAgent pods in case a new version is available type: boolean dnsPolicy: description: 'Optional: Sets DNS Policy for the OneAgent pods' type: string enableIstio: description: If enabled, Istio on the cluster will be configured automatically to allow access to the Dynatrace environment type: boolean env: description: 'Optional: List of environment variables to set for the installer' items: description: EnvVar represents an environment variable present in a Container. properties: name: description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' type: string valueFrom: description: Source for the environment variable's value. Cannot be used if value is not empty. properties: configMapKeyRef: description: Selects a key of a ConfigMap. properties: key: description: The key to select. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' properties: apiVersion: description: Version of the schema the FieldPath is written in terms of, defaults to "v1". type: string fieldPath: description: Path of the field to select in the specified API version. type: string required: - fieldPath type: object resourceFieldRef: description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' properties: containerName: description: 'Container name: required for volumes, optional for env vars' type: string divisor: description: Specifies the output format of the exposed resources, defaults to "1" type: string resource: description: 'Required: resource to select' type: string required: - resource type: object secretKeyRef: description: Selects a key of a secret in the pod's namespace properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object type: object required: - name type: object type: array image: description: 'Optional: the Dynatrace installer container image Defaults to docker.io/dynatrace/oneagent:latest for Kubernetes and to registry.connect.redhat.com/dynatrace/oneagent for OpenShift' type: string labels: additionalProperties: type: string description: 'Optional: Adds additional labels for the OneAgent pods' type: object networkZone: description: 'Optional: Adds the OneAgent to the given NetworkZone' type: string nodeSelector: additionalProperties: type: string description: Node selector to control the selection of nodes (optional) type: object priorityClassName: description: 'Optional: If specified, indicates the pod''s priority. Name must be defined by creating a PriorityClass object with that name. If not specified the setting will be removed from the DaemonSet.' type: string proxy: description: 'Optional: Set custom proxy settings either directly or from a secret with the field ''proxy''' properties: value: type: string valueFrom: type: string type: object resources: description: 'Optional: define resources requests and limits for single pods' properties: limits: additionalProperties: type: string description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object requests: additionalProperties: type: string description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object type: object serviceAccountName: description: 'Optional: set custom Service Account Name used with OneAgent pods' type: string skipCertCheck: description: Disable certificate validation checks for installer download and API communication type: boolean tokens: description: Credentials for the OneAgent to connect back to Dynatrace. type: string tolerations: description: 'Optional: set tolerations for the OneAgent pods' items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: effect: description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. type: string key: description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string operator: description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. type: string tolerationSeconds: description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. type: string type: object type: array trustedCAs: description: 'Optional: Adds custom RootCAs from a configmap' type: string waitReadySeconds: description: 'Optional: Defines the time to wait until OneAgent pod is ready after update - default 300 sec' minimum: 0 type: integer required: - apiUrl type: object status: description: OneAgentStatus defines the observed state of OneAgent properties: conditions: description: Conditions includes status about the current state of the instance items: description: "Condition represents an observation of an object's state. Conditions are an extension mechanism intended to be used when the details of an observation are not a priori known or would not apply to all instances of a given Kind. \n Conditions should be added to explicitly convey properties that users and components care about rather than requiring those properties to be inferred from other observations. Once defined, the meaning of a Condition can not be changed arbitrarily - it becomes part of the API, and has the same backwards- and forwards-compatibility concerns of any other part of the API." properties: lastTransitionTime: format: date-time type: string message: type: string reason: description: ConditionReason is intended to be a one-word, CamelCase representation of the category of cause of the current status. It is intended to be used in concise output, such as one-line kubectl get output, and in summarizing occurrences of causes. type: string status: type: string type: description: "ConditionType is the type of the condition and is typically a CamelCased word or short phrase. \n Condition types should indicate state in the \"abnormal-true\" polarity. For example, if the condition indicates when a policy is invalid, the \"is valid\" case is probably the norm, so the condition should be called \"Invalid\"." type: string required: - status - type type: object type: array instances: additionalProperties: properties: ipAddress: type: string podName: type: string version: type: string type: object type: object lastAPITokenProbeTimestamp: description: LastAPITokenProbeTimestamp tracks when the last request for the API token validity was sent format: date-time type: string lastPaaSTokenProbeTimestamp: description: LastPaaSTokenProbeTimestamp tracks when the last request for the PaaS token validity was sent format: date-time type: string phase: description: Defines the current state (Running, Updating, Error, ...) type: string updatedTimestamp: description: UpdatedTimestamp indicates when the instance was last updated format: date-time type: string version: description: Dynatrace version being used. type: string type: object required: - spec type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true