4266 lines
245 KiB
YAML
4266 lines
245 KiB
YAML
{{- include "dynatrace-operator.platformRequired" . }}
|
|
{{ if and .Values.installCRD (or (eq (include "dynatrace-operator.partial" .) "false") (eq (include "dynatrace-operator.partial" .) "crd")) }}
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.13.0
|
|
name: dynakubes.dynatrace.com
|
|
spec:
|
|
conversion:
|
|
strategy: Webhook
|
|
webhook:
|
|
clientConfig:
|
|
service:
|
|
name: dynatrace-webhook
|
|
namespace: {{.Release.Namespace}}
|
|
path: /convert
|
|
conversionReviewVersions:
|
|
- v1beta1
|
|
group: dynatrace.com
|
|
names:
|
|
categories:
|
|
- dynatrace
|
|
kind: DynaKube
|
|
listKind: DynaKubeList
|
|
plural: dynakubes
|
|
singular: dynakube
|
|
preserveUnknownFields: false
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.apiUrl
|
|
name: ApiUrl
|
|
type: string
|
|
- jsonPath: .status.tokens
|
|
name: Tokens
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: DynaKube is the Schema for the DynaKube 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: DynaKubeSpec defines the desired state of DynaKube
|
|
properties:
|
|
activeGate:
|
|
description: General configuration about ActiveGate instances
|
|
properties:
|
|
autoUpdate:
|
|
description: Disable automatic restarts of OneAgent pods in case
|
|
a new version is available
|
|
type: boolean
|
|
image:
|
|
description: 'Optional: the ActiveGate container image. Defaults
|
|
to the latest ActiveGate image provided by the Docker Registry
|
|
implementation from the Dynatrace environment set as API URL.'
|
|
type: string
|
|
type: object
|
|
apiUrl:
|
|
description: Location of the Dynatrace API to connect to, including
|
|
your specific environment UUID
|
|
type: string
|
|
classicFullStack:
|
|
description: Configuration for ClassicFullStack Monitoring
|
|
properties:
|
|
args:
|
|
description: 'Optional: Arguments to the OneAgent installer'
|
|
items:
|
|
type: string
|
|
type: array
|
|
dnsPolicy:
|
|
description: 'Optional: Sets DNS Policy for the OneAgent pods'
|
|
type: string
|
|
enabled:
|
|
description: Enables FullStack Monitoring
|
|
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 previously 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. Double $$ are reduced to a single
|
|
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
|
"$$(VAR_NAME)" will produce the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the
|
|
exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: 'Optional: Adds additional labels for the OneAgent
|
|
pods'
|
|
type: object
|
|
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
|
|
resources:
|
|
description: 'Optional: define resources requests and limits for
|
|
single pods'
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be
|
|
set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in
|
|
pod.spec.resourceClaims of the Pod where this field
|
|
is used. It makes that resource available inside a
|
|
container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed
|
|
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
serviceAccountName:
|
|
description: 'Optional: set custom Service Account Name used with
|
|
OneAgent pods'
|
|
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 <key,value,effect> using
|
|
the matching operator <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
|
|
useImmutableImage:
|
|
description: Defines if you want to use the immutable image or
|
|
the installer
|
|
type: boolean
|
|
useUnprivilegedMode:
|
|
description: 'Optional: Runs the OneAgent Pods as unprivileged
|
|
(Early Adopter)'
|
|
type: boolean
|
|
waitReadySeconds:
|
|
description: 'Optional: Defines the time to wait until OneAgent
|
|
pod is ready after update - default 300 sec'
|
|
minimum: 0
|
|
type: integer
|
|
type: object
|
|
customPullSecret:
|
|
description: 'Optional: Pull secret for your private registry'
|
|
type: string
|
|
enableIstio:
|
|
description: If enabled, Istio on the cluster will be configured automatically
|
|
to allow access to the Dynatrace environment
|
|
type: boolean
|
|
kubernetesMonitoring:
|
|
description: Configuration for Kubernetes Monitoring
|
|
properties:
|
|
args:
|
|
description: 'Optional: Adds additional arguments for the ActiveGate
|
|
instances'
|
|
items:
|
|
type: string
|
|
type: array
|
|
customProperties:
|
|
description: 'Optional: Add a custom properties file by providing
|
|
it as a value or reference it from a secret If referenced from
|
|
a secret, make sure the key is called ''customProperties'''
|
|
properties:
|
|
value:
|
|
type: string
|
|
valueFrom:
|
|
type: string
|
|
type: object
|
|
enabled:
|
|
description: Enables Capability
|
|
type: boolean
|
|
env:
|
|
description: 'Optional: List of environment variables to set for
|
|
the ActiveGate'
|
|
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 previously 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. Double $$ are reduced to a single
|
|
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
|
"$$(VAR_NAME)" will produce the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the
|
|
exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
group:
|
|
description: 'Optional: Set activation group for ActiveGate'
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: 'Optional: Adds additional labels for the ActiveGate
|
|
pods'
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: 'Optional: Node selector to control the selection
|
|
of nodes'
|
|
type: object
|
|
replicas:
|
|
description: Amount of replicas for your DynaKube
|
|
format: int32
|
|
type: integer
|
|
resources:
|
|
description: 'Optional: define resources requests and limits for
|
|
single ActiveGate pods'
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be
|
|
set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in
|
|
pod.spec.resourceClaims of the Pod where this field
|
|
is used. It makes that resource available inside a
|
|
container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed
|
|
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
serviceAccountName:
|
|
description: 'Optional: set custom Service Account Name used with
|
|
ActiveGate pods'
|
|
type: string
|
|
tolerations:
|
|
description: 'Optional: set tolerations for the ActiveGatePods
|
|
pods'
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
type: object
|
|
networkZone:
|
|
description: 'Optional: Sets Network Zone for OneAgent and ActiveGate
|
|
pods'
|
|
type: string
|
|
oneAgent:
|
|
description: General configuration about OneAgent instances
|
|
properties:
|
|
autoUpdate:
|
|
description: Disable automatic restarts of OneAgent pods in case
|
|
a new version is available
|
|
type: boolean
|
|
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
|
|
version:
|
|
description: 'Optional: If specified, indicates the OneAgent version
|
|
to use Defaults to latest Example: {major.minor.release} - 1.200.0'
|
|
type: string
|
|
type: object
|
|
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
|
|
routing:
|
|
description: Configuration for Routing
|
|
properties:
|
|
args:
|
|
description: 'Optional: Adds additional arguments for the ActiveGate
|
|
instances'
|
|
items:
|
|
type: string
|
|
type: array
|
|
customProperties:
|
|
description: 'Optional: Add a custom properties file by providing
|
|
it as a value or reference it from a secret If referenced from
|
|
a secret, make sure the key is called ''customProperties'''
|
|
properties:
|
|
value:
|
|
type: string
|
|
valueFrom:
|
|
type: string
|
|
type: object
|
|
enabled:
|
|
description: Enables Capability
|
|
type: boolean
|
|
env:
|
|
description: 'Optional: List of environment variables to set for
|
|
the ActiveGate'
|
|
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 previously 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. Double $$ are reduced to a single
|
|
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
|
"$$(VAR_NAME)" will produce the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the
|
|
exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
group:
|
|
description: 'Optional: Set activation group for ActiveGate'
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: 'Optional: Adds additional labels for the ActiveGate
|
|
pods'
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: 'Optional: Node selector to control the selection
|
|
of nodes'
|
|
type: object
|
|
replicas:
|
|
description: Amount of replicas for your DynaKube
|
|
format: int32
|
|
type: integer
|
|
resources:
|
|
description: 'Optional: define resources requests and limits for
|
|
single ActiveGate pods'
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be
|
|
set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in
|
|
pod.spec.resourceClaims of the Pod where this field
|
|
is used. It makes that resource available inside a
|
|
container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed
|
|
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
serviceAccountName:
|
|
description: 'Optional: set custom Service Account Name used with
|
|
ActiveGate pods'
|
|
type: string
|
|
tolerations:
|
|
description: 'Optional: set tolerations for the ActiveGatePods
|
|
pods'
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
type: object
|
|
skipCertCheck:
|
|
description: Disable certificate validation checks for installer download
|
|
and API communication
|
|
type: boolean
|
|
tokens:
|
|
description: Credentials for the DynaKube to connect back to Dynatrace.
|
|
type: string
|
|
trustedCAs:
|
|
description: 'Optional: Adds custom RootCAs from a configmap This
|
|
property only affects certificates used to communicate with the
|
|
Dynatrace API. The property is not applied to the ActiveGate'
|
|
type: string
|
|
required:
|
|
- apiUrl
|
|
type: object
|
|
status:
|
|
description: DynaKubeStatus defines the observed state of DynaKube
|
|
properties:
|
|
activeGate:
|
|
properties:
|
|
imageHash:
|
|
description: ImageHash contains the last image hash seen.
|
|
type: string
|
|
imageVersion:
|
|
description: ImageVersion contains the version from the last image
|
|
seen.
|
|
type: string
|
|
lastImageProbeTimestamp:
|
|
description: LastImageProbeTimestamp defines the last timestamp
|
|
when the querying for image updates have been done.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
conditions:
|
|
description: Conditions includes status about the current state of
|
|
the instance
|
|
items:
|
|
description: "Condition contains details for one aspect of the current
|
|
state of this API Resource. --- This struct is intended for direct
|
|
use as an array at the field path .status.conditions. For example,
|
|
\n type FooStatus struct{ // Represents the observations of a
|
|
foo's current state. // Known .status.conditions.type are: \"Available\",
|
|
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
|
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
|
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
|
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
|
properties:
|
|
lastTransitionTime:
|
|
description: lastTransitionTime is the 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: message is a human readable message indicating
|
|
details about the transition. This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: observedGeneration represents the .metadata.generation
|
|
that the condition was set based upon. For instance, if .metadata.generation
|
|
is currently 12, but the .status.conditions[x].observedGeneration
|
|
is 9, the condition is out of date with respect to the current
|
|
state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: reason contains a programmatic identifier indicating
|
|
the reason for the condition's last transition. Producers
|
|
of specific condition types may define expected values and
|
|
meanings for this field, and whether the values are considered
|
|
a guaranteed API. The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
--- Many .condition.type values are consistent across resources
|
|
like Available, but because arbitrary conditions can be useful
|
|
(see .node.status.conditions), the ability to deconflict is
|
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
environmentID:
|
|
description: EnvironmentID contains the environment UUID corresponding
|
|
to the API URL
|
|
type: string
|
|
lastAPITokenProbeTimestamp:
|
|
description: LastAPITokenProbeTimestamp tracks when the last request
|
|
for the API token validity was sent
|
|
format: date-time
|
|
type: string
|
|
lastClusterVersionProbeTimestamp:
|
|
description: LastClusterVersionProbeTimestamp indicates when the cluster's
|
|
version was last checked
|
|
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
|
|
oneAgent:
|
|
properties:
|
|
imageHash:
|
|
description: ImageHash contains the last image hash seen.
|
|
type: string
|
|
imageVersion:
|
|
description: ImageVersion contains the version from the last image
|
|
seen.
|
|
type: string
|
|
instances:
|
|
additionalProperties:
|
|
properties:
|
|
ipAddress:
|
|
type: string
|
|
podName:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
lastImageProbeTimestamp:
|
|
description: LastImageProbeTimestamp defines the last timestamp
|
|
when the querying for image updates have been done.
|
|
format: date-time
|
|
type: string
|
|
lastUpdateProbeTimestamp:
|
|
description: LastUpdateProbeTimestamp defines the last timestamp
|
|
when the querying for updates have been done
|
|
format: date-time
|
|
type: string
|
|
useImmutableImage:
|
|
description: UseImmutableImage is set when an immutable image
|
|
is currently in use
|
|
type: boolean
|
|
version:
|
|
description: Dynatrace version being used.
|
|
type: string
|
|
type: object
|
|
phase:
|
|
description: Defines the current state (Running, Updating, Error,
|
|
...)
|
|
type: string
|
|
tokens:
|
|
description: Credentials used to connect back to Dynatrace.
|
|
type: string
|
|
updatedTimestamp:
|
|
description: UpdatedTimestamp indicates when the instance was last
|
|
updated
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: false
|
|
subresources:
|
|
status: {}
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.apiUrl
|
|
name: ApiUrl
|
|
type: string
|
|
- jsonPath: .status.phase
|
|
name: Status
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: DynaKube is the Schema for the DynaKube 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: DynaKubeSpec defines the desired state of DynaKube
|
|
properties:
|
|
activeGate:
|
|
description: General configuration about ActiveGate instances.
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
description: Adds additional annotations to the ActiveGate pods
|
|
type: object
|
|
capabilities:
|
|
description: Activegate capabilities enabled (routing, kubernetes-monitoring,
|
|
metrics-ingest, dynatrace-api)
|
|
items:
|
|
type: string
|
|
type: array
|
|
customProperties:
|
|
description: Add a custom properties file by providing it as a
|
|
value or reference it from a secret If referenced from a secret,
|
|
make sure the key is called 'customProperties'
|
|
properties:
|
|
value:
|
|
description: Custom properties value.
|
|
nullable: true
|
|
type: string
|
|
valueFrom:
|
|
description: Custom properties secret.
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
dnsPolicy:
|
|
description: Sets DNS Policy for the ActiveGate pods
|
|
type: string
|
|
env:
|
|
description: List of environment variables to set for the ActiveGate
|
|
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 previously 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. Double $$ are reduced to a single
|
|
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
|
"$$(VAR_NAME)" will produce the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the
|
|
exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
group:
|
|
description: Set activation group for ActiveGate
|
|
type: string
|
|
image:
|
|
description: The ActiveGate container image. Defaults to the latest
|
|
ActiveGate image provided by the registry on the tenant
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Adds additional labels for the ActiveGate pods
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Node selector to control the selection of nodes
|
|
type: object
|
|
priorityClassName:
|
|
description: 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
|
|
StatefulSet.
|
|
type: string
|
|
replicas:
|
|
description: Amount of replicas for your ActiveGates
|
|
format: int32
|
|
type: integer
|
|
resources:
|
|
description: Define resources requests and limits for single ActiveGate
|
|
pods
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be
|
|
set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in
|
|
pod.spec.resourceClaims of the Pod where this field
|
|
is used. It makes that resource available inside a
|
|
container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed
|
|
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
tlsSecretName:
|
|
description: 'The name of a secret containing ActiveGate TLS cert+key
|
|
and password. If not set, self-signed certificate is used. server.p12:
|
|
certificate+key pair in pkcs12 format password: passphrase to
|
|
read server.p12'
|
|
type: string
|
|
tolerations:
|
|
description: Set tolerations for the ActiveGate pods
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
topologySpreadConstraints:
|
|
description: Adds TopologySpreadConstraints for the ActiveGate
|
|
pods
|
|
items:
|
|
description: TopologySpreadConstraint specifies how to spread
|
|
matching pods among the given topology.
|
|
properties:
|
|
labelSelector:
|
|
description: LabelSelector is used to find matching pods.
|
|
Pods that match this label selector are counted to determine
|
|
the number of pods in their corresponding topology domain.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: A label selector requirement is a selector
|
|
that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: operator represents a key's relationship
|
|
to a set of values. Valid operators are In,
|
|
NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: values is an array of string values.
|
|
If the operator is In or NotIn, the values array
|
|
must be non-empty. If the operator is Exists
|
|
or DoesNotExist, the values array must be empty.
|
|
This array is replaced during a strategic merge
|
|
patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: matchLabels is a map of {key,value} pairs.
|
|
A single {key,value} in the matchLabels map is equivalent
|
|
to an element of matchExpressions, whose key field
|
|
is "key", the operator is "In", and the values array
|
|
contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
description: "MatchLabelKeys is a set of pod label keys
|
|
to select the pods over which spreading will be calculated.
|
|
The keys are used to lookup values from the incoming pod
|
|
labels, those key-value labels are ANDed with labelSelector
|
|
to select the group of existing pods over which spreading
|
|
will be calculated for the incoming pod. The same key
|
|
is forbidden to exist in both MatchLabelKeys and LabelSelector.
|
|
MatchLabelKeys cannot be set when LabelSelector isn't
|
|
set. Keys that don't exist in the incoming pod labels
|
|
will be ignored. A null or empty list means only match
|
|
against labelSelector. \n This is a beta field and requires
|
|
the MatchLabelKeysInPodTopologySpread feature gate to
|
|
be enabled (enabled by default)."
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
maxSkew:
|
|
description: 'MaxSkew describes the degree to which pods
|
|
may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
|
|
it is the maximum permitted difference between the number
|
|
of matching pods in the target topology and the global
|
|
minimum. The global minimum is the minimum number of matching
|
|
pods in an eligible domain or zero if the number of eligible
|
|
domains is less than MinDomains. For example, in a 3-zone
|
|
cluster, MaxSkew is set to 1, and pods with the same labelSelector
|
|
spread as 2/2/1: In this case, the global minimum is 1.
|
|
| zone1 | zone2 | zone3 | | P P | P P | P | -
|
|
if MaxSkew is 1, incoming pod can only be scheduled to
|
|
zone3 to become 2/2/2; scheduling it onto zone1(zone2)
|
|
would make the ActualSkew(3-1) on zone1(zone2) violate
|
|
MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled
|
|
onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
|
|
it is used to give higher precedence to topologies that
|
|
satisfy it. It''s a required field. Default value is 1
|
|
and 0 is not allowed.'
|
|
format: int32
|
|
type: integer
|
|
minDomains:
|
|
description: "MinDomains indicates a minimum number of eligible
|
|
domains. When the number of eligible domains with matching
|
|
topology keys is less than minDomains, Pod Topology Spread
|
|
treats \"global minimum\" as 0, and then the calculation
|
|
of Skew is performed. And when the number of eligible
|
|
domains with matching topology keys equals or greater
|
|
than minDomains, this value has no effect on scheduling.
|
|
As a result, when the number of eligible domains is less
|
|
than minDomains, scheduler won't schedule more than maxSkew
|
|
Pods to those domains. If value is nil, the constraint
|
|
behaves as if MinDomains is equal to 1. Valid values are
|
|
integers greater than 0. When value is not nil, WhenUnsatisfiable
|
|
must be DoNotSchedule. \n For example, in a 3-zone cluster,
|
|
MaxSkew is set to 2, MinDomains is set to 5 and pods with
|
|
the same labelSelector spread as 2/2/2: | zone1 | zone2
|
|
| zone3 | | P P | P P | P P | The number of domains
|
|
is less than 5(MinDomains), so \"global minimum\" is treated
|
|
as 0. In this situation, new pod with the same labelSelector
|
|
cannot be scheduled, because computed skew will be 3(3
|
|
- 0) if new Pod is scheduled to any of the three zones,
|
|
it will violate MaxSkew. \n This is a beta field and requires
|
|
the MinDomainsInPodTopologySpread feature gate to be enabled
|
|
(enabled by default)."
|
|
format: int32
|
|
type: integer
|
|
nodeAffinityPolicy:
|
|
description: "NodeAffinityPolicy indicates how we will treat
|
|
Pod's nodeAffinity/nodeSelector when calculating pod topology
|
|
spread skew. Options are: - Honor: only nodes matching
|
|
nodeAffinity/nodeSelector are included in the calculations.
|
|
- Ignore: nodeAffinity/nodeSelector are ignored. All nodes
|
|
are included in the calculations. \n If this value is
|
|
nil, the behavior is equivalent to the Honor policy. This
|
|
is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread
|
|
feature flag."
|
|
type: string
|
|
nodeTaintsPolicy:
|
|
description: "NodeTaintsPolicy indicates how we will treat
|
|
node taints when calculating pod topology spread skew.
|
|
Options are: - Honor: nodes without taints, along with
|
|
tainted nodes for which the incoming pod has a toleration,
|
|
are included. - Ignore: node taints are ignored. All nodes
|
|
are included. \n If this value is nil, the behavior is
|
|
equivalent to the Ignore policy. This is a beta-level
|
|
feature default enabled by the NodeInclusionPolicyInPodTopologySpread
|
|
feature flag."
|
|
type: string
|
|
topologyKey:
|
|
description: TopologyKey is the key of node labels. Nodes
|
|
that have a label with this key and identical values are
|
|
considered to be in the same topology. We consider each
|
|
<key, value> as a "bucket", and try to put balanced number
|
|
of pods into each bucket. We define a domain as a particular
|
|
instance of a topology. Also, we define an eligible domain
|
|
as a domain whose nodes meet the requirements of nodeAffinityPolicy
|
|
and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname",
|
|
each Node is a domain of that topology. And, if TopologyKey
|
|
is "topology.kubernetes.io/zone", each zone is a domain
|
|
of that topology. It's a required field.
|
|
type: string
|
|
whenUnsatisfiable:
|
|
description: 'WhenUnsatisfiable indicates how to deal with
|
|
a pod if it doesn''t satisfy the spread constraint. -
|
|
DoNotSchedule (default) tells the scheduler not to schedule
|
|
it. - ScheduleAnyway tells the scheduler to schedule the
|
|
pod in any location, but giving higher precedence to topologies
|
|
that would help reduce the skew. A constraint is considered
|
|
"Unsatisfiable" for an incoming pod if and only if every
|
|
possible node assignment for that pod would violate "MaxSkew"
|
|
on some topology. For example, in a 3-zone cluster, MaxSkew
|
|
is set to 1, and pods with the same labelSelector spread
|
|
as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P |
|
|
If WhenUnsatisfiable is set to DoNotSchedule, incoming
|
|
pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2)
|
|
as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1).
|
|
In other words, the cluster can still be imbalanced, but
|
|
scheduler won''t make it *more* imbalanced. It''s a required
|
|
field.'
|
|
type: string
|
|
required:
|
|
- maxSkew
|
|
- topologyKey
|
|
- whenUnsatisfiable
|
|
type: object
|
|
type: array
|
|
type: object
|
|
apiUrl:
|
|
description: Dynatrace apiUrl, including the /api path at the end.
|
|
For SaaS, set YOUR_ENVIRONMENT_ID to your environment ID. For Managed,
|
|
change the apiUrl address. For instructions on how to determine
|
|
the environment ID and how to configure the apiUrl address, see
|
|
Environment ID (https://www.dynatrace.com/support/help/get-started/monitoring-environment/environment-id).
|
|
type: string
|
|
customPullSecret:
|
|
description: Defines a custom pull secret in case you use a private
|
|
registry when pulling images from the Dynatrace environment. To
|
|
define a custom pull secret and learn about the expected behavior,
|
|
see Configure customPullSecret (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring/dto-config-options-k8s#custompullsecret).
|
|
type: string
|
|
enableIstio:
|
|
description: When enabled, and if Istio is installed on the Kubernetes
|
|
environment, Dynatrace Operator will create the corresponding VirtualService
|
|
and ServiceEntry objects to allow access to the Dynatrace Cluster
|
|
from the OneAgent or ActiveGate. Disabled by default.
|
|
type: boolean
|
|
kubernetesMonitoring:
|
|
description: Configuration for Kubernetes Monitoring
|
|
properties:
|
|
customProperties:
|
|
description: Add a custom properties file by providing it as a
|
|
value or reference it from a secret If referenced from a secret,
|
|
make sure the key is called 'customProperties'
|
|
properties:
|
|
value:
|
|
description: Custom properties value.
|
|
nullable: true
|
|
type: string
|
|
valueFrom:
|
|
description: Custom properties secret.
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
enabled:
|
|
description: Enables Capability
|
|
type: boolean
|
|
env:
|
|
description: List of environment variables to set for the ActiveGate
|
|
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 previously 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. Double $$ are reduced to a single
|
|
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
|
"$$(VAR_NAME)" will produce the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the
|
|
exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
group:
|
|
description: Set activation group for ActiveGate
|
|
type: string
|
|
image:
|
|
description: The ActiveGate container image. Defaults to the latest
|
|
ActiveGate image provided by the registry on the tenant
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Adds additional labels for the ActiveGate pods
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Node selector to control the selection of nodes
|
|
type: object
|
|
replicas:
|
|
description: Amount of replicas for your ActiveGates
|
|
format: int32
|
|
type: integer
|
|
resources:
|
|
description: Define resources requests and limits for single ActiveGate
|
|
pods
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be
|
|
set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in
|
|
pod.spec.resourceClaims of the Pod where this field
|
|
is used. It makes that resource available inside a
|
|
container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed
|
|
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
tolerations:
|
|
description: Set tolerations for the ActiveGate pods
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
topologySpreadConstraints:
|
|
description: Adds TopologySpreadConstraints for the ActiveGate
|
|
pods
|
|
items:
|
|
description: TopologySpreadConstraint specifies how to spread
|
|
matching pods among the given topology.
|
|
properties:
|
|
labelSelector:
|
|
description: LabelSelector is used to find matching pods.
|
|
Pods that match this label selector are counted to determine
|
|
the number of pods in their corresponding topology domain.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: A label selector requirement is a selector
|
|
that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: operator represents a key's relationship
|
|
to a set of values. Valid operators are In,
|
|
NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: values is an array of string values.
|
|
If the operator is In or NotIn, the values array
|
|
must be non-empty. If the operator is Exists
|
|
or DoesNotExist, the values array must be empty.
|
|
This array is replaced during a strategic merge
|
|
patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: matchLabels is a map of {key,value} pairs.
|
|
A single {key,value} in the matchLabels map is equivalent
|
|
to an element of matchExpressions, whose key field
|
|
is "key", the operator is "In", and the values array
|
|
contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
description: "MatchLabelKeys is a set of pod label keys
|
|
to select the pods over which spreading will be calculated.
|
|
The keys are used to lookup values from the incoming pod
|
|
labels, those key-value labels are ANDed with labelSelector
|
|
to select the group of existing pods over which spreading
|
|
will be calculated for the incoming pod. The same key
|
|
is forbidden to exist in both MatchLabelKeys and LabelSelector.
|
|
MatchLabelKeys cannot be set when LabelSelector isn't
|
|
set. Keys that don't exist in the incoming pod labels
|
|
will be ignored. A null or empty list means only match
|
|
against labelSelector. \n This is a beta field and requires
|
|
the MatchLabelKeysInPodTopologySpread feature gate to
|
|
be enabled (enabled by default)."
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
maxSkew:
|
|
description: 'MaxSkew describes the degree to which pods
|
|
may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
|
|
it is the maximum permitted difference between the number
|
|
of matching pods in the target topology and the global
|
|
minimum. The global minimum is the minimum number of matching
|
|
pods in an eligible domain or zero if the number of eligible
|
|
domains is less than MinDomains. For example, in a 3-zone
|
|
cluster, MaxSkew is set to 1, and pods with the same labelSelector
|
|
spread as 2/2/1: In this case, the global minimum is 1.
|
|
| zone1 | zone2 | zone3 | | P P | P P | P | -
|
|
if MaxSkew is 1, incoming pod can only be scheduled to
|
|
zone3 to become 2/2/2; scheduling it onto zone1(zone2)
|
|
would make the ActualSkew(3-1) on zone1(zone2) violate
|
|
MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled
|
|
onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
|
|
it is used to give higher precedence to topologies that
|
|
satisfy it. It''s a required field. Default value is 1
|
|
and 0 is not allowed.'
|
|
format: int32
|
|
type: integer
|
|
minDomains:
|
|
description: "MinDomains indicates a minimum number of eligible
|
|
domains. When the number of eligible domains with matching
|
|
topology keys is less than minDomains, Pod Topology Spread
|
|
treats \"global minimum\" as 0, and then the calculation
|
|
of Skew is performed. And when the number of eligible
|
|
domains with matching topology keys equals or greater
|
|
than minDomains, this value has no effect on scheduling.
|
|
As a result, when the number of eligible domains is less
|
|
than minDomains, scheduler won't schedule more than maxSkew
|
|
Pods to those domains. If value is nil, the constraint
|
|
behaves as if MinDomains is equal to 1. Valid values are
|
|
integers greater than 0. When value is not nil, WhenUnsatisfiable
|
|
must be DoNotSchedule. \n For example, in a 3-zone cluster,
|
|
MaxSkew is set to 2, MinDomains is set to 5 and pods with
|
|
the same labelSelector spread as 2/2/2: | zone1 | zone2
|
|
| zone3 | | P P | P P | P P | The number of domains
|
|
is less than 5(MinDomains), so \"global minimum\" is treated
|
|
as 0. In this situation, new pod with the same labelSelector
|
|
cannot be scheduled, because computed skew will be 3(3
|
|
- 0) if new Pod is scheduled to any of the three zones,
|
|
it will violate MaxSkew. \n This is a beta field and requires
|
|
the MinDomainsInPodTopologySpread feature gate to be enabled
|
|
(enabled by default)."
|
|
format: int32
|
|
type: integer
|
|
nodeAffinityPolicy:
|
|
description: "NodeAffinityPolicy indicates how we will treat
|
|
Pod's nodeAffinity/nodeSelector when calculating pod topology
|
|
spread skew. Options are: - Honor: only nodes matching
|
|
nodeAffinity/nodeSelector are included in the calculations.
|
|
- Ignore: nodeAffinity/nodeSelector are ignored. All nodes
|
|
are included in the calculations. \n If this value is
|
|
nil, the behavior is equivalent to the Honor policy. This
|
|
is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread
|
|
feature flag."
|
|
type: string
|
|
nodeTaintsPolicy:
|
|
description: "NodeTaintsPolicy indicates how we will treat
|
|
node taints when calculating pod topology spread skew.
|
|
Options are: - Honor: nodes without taints, along with
|
|
tainted nodes for which the incoming pod has a toleration,
|
|
are included. - Ignore: node taints are ignored. All nodes
|
|
are included. \n If this value is nil, the behavior is
|
|
equivalent to the Ignore policy. This is a beta-level
|
|
feature default enabled by the NodeInclusionPolicyInPodTopologySpread
|
|
feature flag."
|
|
type: string
|
|
topologyKey:
|
|
description: TopologyKey is the key of node labels. Nodes
|
|
that have a label with this key and identical values are
|
|
considered to be in the same topology. We consider each
|
|
<key, value> as a "bucket", and try to put balanced number
|
|
of pods into each bucket. We define a domain as a particular
|
|
instance of a topology. Also, we define an eligible domain
|
|
as a domain whose nodes meet the requirements of nodeAffinityPolicy
|
|
and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname",
|
|
each Node is a domain of that topology. And, if TopologyKey
|
|
is "topology.kubernetes.io/zone", each zone is a domain
|
|
of that topology. It's a required field.
|
|
type: string
|
|
whenUnsatisfiable:
|
|
description: 'WhenUnsatisfiable indicates how to deal with
|
|
a pod if it doesn''t satisfy the spread constraint. -
|
|
DoNotSchedule (default) tells the scheduler not to schedule
|
|
it. - ScheduleAnyway tells the scheduler to schedule the
|
|
pod in any location, but giving higher precedence to topologies
|
|
that would help reduce the skew. A constraint is considered
|
|
"Unsatisfiable" for an incoming pod if and only if every
|
|
possible node assignment for that pod would violate "MaxSkew"
|
|
on some topology. For example, in a 3-zone cluster, MaxSkew
|
|
is set to 1, and pods with the same labelSelector spread
|
|
as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P |
|
|
If WhenUnsatisfiable is set to DoNotSchedule, incoming
|
|
pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2)
|
|
as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1).
|
|
In other words, the cluster can still be imbalanced, but
|
|
scheduler won''t make it *more* imbalanced. It''s a required
|
|
field.'
|
|
type: string
|
|
required:
|
|
- maxSkew
|
|
- topologyKey
|
|
- whenUnsatisfiable
|
|
type: object
|
|
type: array
|
|
type: object
|
|
namespaceSelector:
|
|
description: Applicable only for applicationMonitoring or cloudNativeFullStack
|
|
configuration types. The namespaces where you want Dynatrace Operator
|
|
to inject. For more information, see Configure monitoring for namespaces
|
|
and pods (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring/dto-config-options-k8s#annotate).
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: A label selector requirement is a selector that
|
|
contains values, a key, and an operator that relates the key
|
|
and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: operator represents a key's relationship to
|
|
a set of values. Valid operators are In, NotIn, Exists
|
|
and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: values is an array of string values. If the
|
|
operator is In or NotIn, the values array must be non-empty.
|
|
If the operator is Exists or DoesNotExist, the values
|
|
array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: matchLabels is a map of {key,value} pairs. A single
|
|
{key,value} in the matchLabels map is equivalent to an element
|
|
of matchExpressions, whose key field is "key", the operator
|
|
is "In", and the values array contains only "value". The requirements
|
|
are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
networkZone:
|
|
description: Sets a network zone for the OneAgent and ActiveGate pods.
|
|
type: string
|
|
oneAgent:
|
|
description: General configuration about OneAgent instances. You can't
|
|
enable more than one module (classicFullStack, cloudNativeFullStack,
|
|
hostMonitoring, or applicationMonitoring).
|
|
properties:
|
|
applicationMonitoring:
|
|
description: dynatrace-webhook injects into application pods based
|
|
on labeled namespaces. Has an optional CSI driver per node via
|
|
DaemonSet to provide binaries to pods.
|
|
nullable: true
|
|
properties:
|
|
codeModulesImage:
|
|
description: The OneAgent image that is used to inject into
|
|
Pods.
|
|
type: string
|
|
initResources:
|
|
description: Define resources requests and limits for the
|
|
initContainer. For details, see Managing resources for containers
|
|
(https://kubernetes.io/docs/concepts/configuration/manage-resources-containers).
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the
|
|
DynamicResourceAllocation feature gate. \n This field
|
|
is immutable. It can only be set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry
|
|
in pod.spec.resourceClaims of the Pod where this
|
|
field is used. It makes that resource available
|
|
inside a container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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.
|
|
Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
useCSIDriver:
|
|
description: Set if you want to use the CSIDriver. Don't enable
|
|
it if you do not have access to Kubernetes nodes or if you
|
|
lack privileges.
|
|
type: boolean
|
|
version:
|
|
description: The OneAgent version to be used.
|
|
type: string
|
|
type: object
|
|
classicFullStack:
|
|
description: Has a single OneAgent per node via DaemonSet. Injection
|
|
is performed via the same OneAgent DaemonSet.
|
|
nullable: true
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
description: Add custom OneAgent annotations.
|
|
type: object
|
|
args:
|
|
description: Set additional arguments to the OneAgent installer.
|
|
For available options, see Linux custom installation (https://www.dynatrace.com/support/help/setup-and-configuration/dynatrace-oneagent/installation-and-operation/linux/installation/customize-oneagent-installation-on-linux).
|
|
For the list of limitations, see Limitations (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/docker/set-up-dynatrace-oneagent-as-docker-container#limitations).
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
autoUpdate:
|
|
description: Disables automatic restarts of OneAgent pods
|
|
in case a new version is available (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring#disable-auto).
|
|
Enabled by default.
|
|
type: boolean
|
|
dnsPolicy:
|
|
description: Set the DNS Policy for OneAgent pods. For details,
|
|
see Pods DNS Policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
|
|
type: string
|
|
env:
|
|
description: Set additional environment variables for the
|
|
OneAgent pods.
|
|
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 previously 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. Double $$ are
|
|
reduced to a single $, which allows for escaping the
|
|
$(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
|
|
the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports
|
|
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of
|
|
the exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
image:
|
|
description: Use a custom OneAgent Docker image. Defaults
|
|
to the image from the Dynatrace cluster.
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Your defined labels for OneAgent pods in order
|
|
to structure workloads as desired.
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Specify the node selector that controls on which
|
|
nodes OneAgent will be deployed.
|
|
type: object
|
|
oneAgentResources:
|
|
description: 'Resource settings for OneAgent container. Consumption
|
|
of the OneAgent heavily depends on the workload to monitor.
|
|
You can use the default settings in the CR. Note: resource.requests
|
|
shows the values needed to run; resource.limits shows the
|
|
maximum limits for the pod.'
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the
|
|
DynamicResourceAllocation feature gate. \n This field
|
|
is immutable. It can only be set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry
|
|
in pod.spec.resourceClaims of the Pod where this
|
|
field is used. It makes that resource available
|
|
inside a container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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.
|
|
Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
priorityClassName:
|
|
description: Assign a priority class to the OneAgent pods.
|
|
By default, no class is set. For details, see Pod Priority
|
|
and Preemption (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/).
|
|
type: string
|
|
tolerations:
|
|
description: Tolerations to include with the OneAgent DaemonSet.
|
|
For details, see Taints and Tolerations (https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
version:
|
|
description: The OneAgent version to be used.
|
|
type: string
|
|
type: object
|
|
cloudNativeFullStack:
|
|
description: Has a single OneAgent per node via DaemonSet. dynatrace-webhook
|
|
injects into application pods based on labeled namespaces. Has
|
|
a CSI driver per node via DaemonSet to provide binaries to pods.
|
|
nullable: true
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
description: Add custom OneAgent annotations.
|
|
type: object
|
|
args:
|
|
description: Set additional arguments to the OneAgent installer.
|
|
For available options, see Linux custom installation (https://www.dynatrace.com/support/help/setup-and-configuration/dynatrace-oneagent/installation-and-operation/linux/installation/customize-oneagent-installation-on-linux).
|
|
For the list of limitations, see Limitations (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/docker/set-up-dynatrace-oneagent-as-docker-container#limitations).
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
autoUpdate:
|
|
description: Disables automatic restarts of OneAgent pods
|
|
in case a new version is available (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring#disable-auto).
|
|
Enabled by default.
|
|
type: boolean
|
|
codeModulesImage:
|
|
description: The OneAgent image that is used to inject into
|
|
Pods.
|
|
type: string
|
|
dnsPolicy:
|
|
description: Set the DNS Policy for OneAgent pods. For details,
|
|
see Pods DNS Policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
|
|
type: string
|
|
env:
|
|
description: Set additional environment variables for the
|
|
OneAgent pods.
|
|
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 previously 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. Double $$ are
|
|
reduced to a single $, which allows for escaping the
|
|
$(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
|
|
the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports
|
|
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of
|
|
the exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
image:
|
|
description: Use a custom OneAgent Docker image. Defaults
|
|
to the image from the Dynatrace cluster.
|
|
type: string
|
|
initResources:
|
|
description: Define resources requests and limits for the
|
|
initContainer. For details, see Managing resources for containers
|
|
(https://kubernetes.io/docs/concepts/configuration/manage-resources-containers).
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the
|
|
DynamicResourceAllocation feature gate. \n This field
|
|
is immutable. It can only be set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry
|
|
in pod.spec.resourceClaims of the Pod where this
|
|
field is used. It makes that resource available
|
|
inside a container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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.
|
|
Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Your defined labels for OneAgent pods in order
|
|
to structure workloads as desired.
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Specify the node selector that controls on which
|
|
nodes OneAgent will be deployed.
|
|
type: object
|
|
oneAgentResources:
|
|
description: 'Resource settings for OneAgent container. Consumption
|
|
of the OneAgent heavily depends on the workload to monitor.
|
|
You can use the default settings in the CR. Note: resource.requests
|
|
shows the values needed to run; resource.limits shows the
|
|
maximum limits for the pod.'
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the
|
|
DynamicResourceAllocation feature gate. \n This field
|
|
is immutable. It can only be set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry
|
|
in pod.spec.resourceClaims of the Pod where this
|
|
field is used. It makes that resource available
|
|
inside a container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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.
|
|
Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
priorityClassName:
|
|
description: Assign a priority class to the OneAgent pods.
|
|
By default, no class is set. For details, see Pod Priority
|
|
and Preemption (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/).
|
|
type: string
|
|
tolerations:
|
|
description: Tolerations to include with the OneAgent DaemonSet.
|
|
For details, see Taints and Tolerations (https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
version:
|
|
description: The OneAgent version to be used.
|
|
type: string
|
|
type: object
|
|
hostMonitoring:
|
|
description: Has a single OneAgent per node via DaemonSet. Doesn't
|
|
inject into application pods.
|
|
nullable: true
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
description: Add custom OneAgent annotations.
|
|
type: object
|
|
args:
|
|
description: Set additional arguments to the OneAgent installer.
|
|
For available options, see Linux custom installation (https://www.dynatrace.com/support/help/setup-and-configuration/dynatrace-oneagent/installation-and-operation/linux/installation/customize-oneagent-installation-on-linux).
|
|
For the list of limitations, see Limitations (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/docker/set-up-dynatrace-oneagent-as-docker-container#limitations).
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
autoUpdate:
|
|
description: Disables automatic restarts of OneAgent pods
|
|
in case a new version is available (https://www.dynatrace.com/support/help/setup-and-configuration/setup-on-container-platforms/kubernetes/get-started-with-kubernetes-monitoring#disable-auto).
|
|
Enabled by default.
|
|
type: boolean
|
|
dnsPolicy:
|
|
description: Set the DNS Policy for OneAgent pods. For details,
|
|
see Pods DNS Policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
|
|
type: string
|
|
env:
|
|
description: Set additional environment variables for the
|
|
OneAgent pods.
|
|
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 previously 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. Double $$ are
|
|
reduced to a single $, which allows for escaping the
|
|
$(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce
|
|
the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports
|
|
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of
|
|
the exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
image:
|
|
description: Use a custom OneAgent Docker image. Defaults
|
|
to the image from the Dynatrace cluster.
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Your defined labels for OneAgent pods in order
|
|
to structure workloads as desired.
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Specify the node selector that controls on which
|
|
nodes OneAgent will be deployed.
|
|
type: object
|
|
oneAgentResources:
|
|
description: 'Resource settings for OneAgent container. Consumption
|
|
of the OneAgent heavily depends on the workload to monitor.
|
|
You can use the default settings in the CR. Note: resource.requests
|
|
shows the values needed to run; resource.limits shows the
|
|
maximum limits for the pod.'
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the
|
|
DynamicResourceAllocation feature gate. \n This field
|
|
is immutable. It can only be set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry
|
|
in pod.spec.resourceClaims of the Pod where this
|
|
field is used. It makes that resource available
|
|
inside a container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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.
|
|
Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
priorityClassName:
|
|
description: Assign a priority class to the OneAgent pods.
|
|
By default, no class is set. For details, see Pod Priority
|
|
and Preemption (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/).
|
|
type: string
|
|
tolerations:
|
|
description: Tolerations to include with the OneAgent DaemonSet.
|
|
For details, see Taints and Tolerations (https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
version:
|
|
description: The OneAgent version to be used.
|
|
type: string
|
|
type: object
|
|
type: object
|
|
proxy:
|
|
description: 'Set custom proxy settings either directly or from a
|
|
secret with the field proxy. Note: Applies to Dynatrace Operator,
|
|
ActiveGate, and OneAgents.'
|
|
properties:
|
|
value:
|
|
description: Proxy URL. It has preference over ValueFrom.
|
|
nullable: true
|
|
type: string
|
|
valueFrom:
|
|
description: Secret containing proxy URL.
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
routing:
|
|
description: Configuration for Routing
|
|
properties:
|
|
customProperties:
|
|
description: Add a custom properties file by providing it as a
|
|
value or reference it from a secret If referenced from a secret,
|
|
make sure the key is called 'customProperties'
|
|
properties:
|
|
value:
|
|
description: Custom properties value.
|
|
nullable: true
|
|
type: string
|
|
valueFrom:
|
|
description: Custom properties secret.
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
enabled:
|
|
description: Enables Capability
|
|
type: boolean
|
|
env:
|
|
description: List of environment variables to set for the ActiveGate
|
|
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 previously 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. Double $$ are reduced to a single
|
|
$, which allows for escaping the $(VAR_NAME) syntax: i.e.
|
|
"$$(VAR_NAME)" will produce the string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`,
|
|
`metadata.annotations[''<KEY>'']`, 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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the
|
|
exposed resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
group:
|
|
description: Set activation group for ActiveGate
|
|
type: string
|
|
image:
|
|
description: The ActiveGate container image. Defaults to the latest
|
|
ActiveGate image provided by the registry on the tenant
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Adds additional labels for the ActiveGate pods
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Node selector to control the selection of nodes
|
|
type: object
|
|
replicas:
|
|
description: Amount of replicas for your ActiveGates
|
|
format: int32
|
|
type: integer
|
|
resources:
|
|
description: Define resources requests and limits for single ActiveGate
|
|
pods
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined
|
|
in spec.resourceClaims, that are used by this container.
|
|
\n This is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be
|
|
set for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in
|
|
pod.spec.resourceClaims of the Pod where this field
|
|
is used. It makes that resource available inside a
|
|
container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute
|
|
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed
|
|
Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
tolerations:
|
|
description: Set tolerations for the ActiveGate pods
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <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
|
|
topologySpreadConstraints:
|
|
description: Adds TopologySpreadConstraints for the ActiveGate
|
|
pods
|
|
items:
|
|
description: TopologySpreadConstraint specifies how to spread
|
|
matching pods among the given topology.
|
|
properties:
|
|
labelSelector:
|
|
description: LabelSelector is used to find matching pods.
|
|
Pods that match this label selector are counted to determine
|
|
the number of pods in their corresponding topology domain.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: A label selector requirement is a selector
|
|
that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: operator represents a key's relationship
|
|
to a set of values. Valid operators are In,
|
|
NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: values is an array of string values.
|
|
If the operator is In or NotIn, the values array
|
|
must be non-empty. If the operator is Exists
|
|
or DoesNotExist, the values array must be empty.
|
|
This array is replaced during a strategic merge
|
|
patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: matchLabels is a map of {key,value} pairs.
|
|
A single {key,value} in the matchLabels map is equivalent
|
|
to an element of matchExpressions, whose key field
|
|
is "key", the operator is "In", and the values array
|
|
contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
description: "MatchLabelKeys is a set of pod label keys
|
|
to select the pods over which spreading will be calculated.
|
|
The keys are used to lookup values from the incoming pod
|
|
labels, those key-value labels are ANDed with labelSelector
|
|
to select the group of existing pods over which spreading
|
|
will be calculated for the incoming pod. The same key
|
|
is forbidden to exist in both MatchLabelKeys and LabelSelector.
|
|
MatchLabelKeys cannot be set when LabelSelector isn't
|
|
set. Keys that don't exist in the incoming pod labels
|
|
will be ignored. A null or empty list means only match
|
|
against labelSelector. \n This is a beta field and requires
|
|
the MatchLabelKeysInPodTopologySpread feature gate to
|
|
be enabled (enabled by default)."
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
maxSkew:
|
|
description: 'MaxSkew describes the degree to which pods
|
|
may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
|
|
it is the maximum permitted difference between the number
|
|
of matching pods in the target topology and the global
|
|
minimum. The global minimum is the minimum number of matching
|
|
pods in an eligible domain or zero if the number of eligible
|
|
domains is less than MinDomains. For example, in a 3-zone
|
|
cluster, MaxSkew is set to 1, and pods with the same labelSelector
|
|
spread as 2/2/1: In this case, the global minimum is 1.
|
|
| zone1 | zone2 | zone3 | | P P | P P | P | -
|
|
if MaxSkew is 1, incoming pod can only be scheduled to
|
|
zone3 to become 2/2/2; scheduling it onto zone1(zone2)
|
|
would make the ActualSkew(3-1) on zone1(zone2) violate
|
|
MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled
|
|
onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
|
|
it is used to give higher precedence to topologies that
|
|
satisfy it. It''s a required field. Default value is 1
|
|
and 0 is not allowed.'
|
|
format: int32
|
|
type: integer
|
|
minDomains:
|
|
description: "MinDomains indicates a minimum number of eligible
|
|
domains. When the number of eligible domains with matching
|
|
topology keys is less than minDomains, Pod Topology Spread
|
|
treats \"global minimum\" as 0, and then the calculation
|
|
of Skew is performed. And when the number of eligible
|
|
domains with matching topology keys equals or greater
|
|
than minDomains, this value has no effect on scheduling.
|
|
As a result, when the number of eligible domains is less
|
|
than minDomains, scheduler won't schedule more than maxSkew
|
|
Pods to those domains. If value is nil, the constraint
|
|
behaves as if MinDomains is equal to 1. Valid values are
|
|
integers greater than 0. When value is not nil, WhenUnsatisfiable
|
|
must be DoNotSchedule. \n For example, in a 3-zone cluster,
|
|
MaxSkew is set to 2, MinDomains is set to 5 and pods with
|
|
the same labelSelector spread as 2/2/2: | zone1 | zone2
|
|
| zone3 | | P P | P P | P P | The number of domains
|
|
is less than 5(MinDomains), so \"global minimum\" is treated
|
|
as 0. In this situation, new pod with the same labelSelector
|
|
cannot be scheduled, because computed skew will be 3(3
|
|
- 0) if new Pod is scheduled to any of the three zones,
|
|
it will violate MaxSkew. \n This is a beta field and requires
|
|
the MinDomainsInPodTopologySpread feature gate to be enabled
|
|
(enabled by default)."
|
|
format: int32
|
|
type: integer
|
|
nodeAffinityPolicy:
|
|
description: "NodeAffinityPolicy indicates how we will treat
|
|
Pod's nodeAffinity/nodeSelector when calculating pod topology
|
|
spread skew. Options are: - Honor: only nodes matching
|
|
nodeAffinity/nodeSelector are included in the calculations.
|
|
- Ignore: nodeAffinity/nodeSelector are ignored. All nodes
|
|
are included in the calculations. \n If this value is
|
|
nil, the behavior is equivalent to the Honor policy. This
|
|
is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread
|
|
feature flag."
|
|
type: string
|
|
nodeTaintsPolicy:
|
|
description: "NodeTaintsPolicy indicates how we will treat
|
|
node taints when calculating pod topology spread skew.
|
|
Options are: - Honor: nodes without taints, along with
|
|
tainted nodes for which the incoming pod has a toleration,
|
|
are included. - Ignore: node taints are ignored. All nodes
|
|
are included. \n If this value is nil, the behavior is
|
|
equivalent to the Ignore policy. This is a beta-level
|
|
feature default enabled by the NodeInclusionPolicyInPodTopologySpread
|
|
feature flag."
|
|
type: string
|
|
topologyKey:
|
|
description: TopologyKey is the key of node labels. Nodes
|
|
that have a label with this key and identical values are
|
|
considered to be in the same topology. We consider each
|
|
<key, value> as a "bucket", and try to put balanced number
|
|
of pods into each bucket. We define a domain as a particular
|
|
instance of a topology. Also, we define an eligible domain
|
|
as a domain whose nodes meet the requirements of nodeAffinityPolicy
|
|
and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname",
|
|
each Node is a domain of that topology. And, if TopologyKey
|
|
is "topology.kubernetes.io/zone", each zone is a domain
|
|
of that topology. It's a required field.
|
|
type: string
|
|
whenUnsatisfiable:
|
|
description: 'WhenUnsatisfiable indicates how to deal with
|
|
a pod if it doesn''t satisfy the spread constraint. -
|
|
DoNotSchedule (default) tells the scheduler not to schedule
|
|
it. - ScheduleAnyway tells the scheduler to schedule the
|
|
pod in any location, but giving higher precedence to topologies
|
|
that would help reduce the skew. A constraint is considered
|
|
"Unsatisfiable" for an incoming pod if and only if every
|
|
possible node assignment for that pod would violate "MaxSkew"
|
|
on some topology. For example, in a 3-zone cluster, MaxSkew
|
|
is set to 1, and pods with the same labelSelector spread
|
|
as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P |
|
|
If WhenUnsatisfiable is set to DoNotSchedule, incoming
|
|
pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2)
|
|
as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1).
|
|
In other words, the cluster can still be imbalanced, but
|
|
scheduler won''t make it *more* imbalanced. It''s a required
|
|
field.'
|
|
type: string
|
|
required:
|
|
- maxSkew
|
|
- topologyKey
|
|
- whenUnsatisfiable
|
|
type: object
|
|
type: array
|
|
type: object
|
|
skipCertCheck:
|
|
description: Disable certificate check for the connection between
|
|
Dynatrace Operator and the Dynatrace Cluster. Set to true if you
|
|
want to skip certification validation checks.
|
|
type: boolean
|
|
tokens:
|
|
description: Name of the secret holding the tokens used for connecting
|
|
to Dynatrace.
|
|
type: string
|
|
trustedCAs:
|
|
description: 'Adds custom RootCAs from a configmap. Put the certificate
|
|
under certs within your configmap. Note: Applies only to Dynatrace
|
|
Operator and OneAgent, not to ActiveGate.'
|
|
type: string
|
|
required:
|
|
- apiUrl
|
|
type: object
|
|
status:
|
|
description: DynaKubeStatus defines the observed state of DynaKube
|
|
properties:
|
|
activeGate:
|
|
description: Observed state of ActiveGate
|
|
properties:
|
|
connectionInfoStatus:
|
|
description: Information about Active Gate's connections
|
|
properties:
|
|
endpoints:
|
|
description: Available connection endpoints
|
|
type: string
|
|
lastRequest:
|
|
description: Time of the last connection request
|
|
format: date-time
|
|
type: string
|
|
tenantUUID:
|
|
description: UUID of the tenant, received from the tenant
|
|
type: string
|
|
type: object
|
|
imageID:
|
|
description: Image ID
|
|
type: string
|
|
lastProbeTimestamp:
|
|
description: Indicates when the last check for a new version was
|
|
performed
|
|
format: date-time
|
|
type: string
|
|
source:
|
|
description: Source of the image (tenant-registry, public-registry,
|
|
...)
|
|
type: string
|
|
version:
|
|
description: Image version
|
|
type: string
|
|
type: object
|
|
codeModules:
|
|
description: Observed state of Code Modules
|
|
properties:
|
|
imageID:
|
|
description: Image ID
|
|
type: string
|
|
lastProbeTimestamp:
|
|
description: Indicates when the last check for a new version was
|
|
performed
|
|
format: date-time
|
|
type: string
|
|
source:
|
|
description: Source of the image (tenant-registry, public-registry,
|
|
...)
|
|
type: string
|
|
version:
|
|
description: Image version
|
|
type: string
|
|
type: object
|
|
conditions:
|
|
description: Conditions includes status about the current state of
|
|
the instance
|
|
items:
|
|
description: "Condition contains details for one aspect of the current
|
|
state of this API Resource. --- This struct is intended for direct
|
|
use as an array at the field path .status.conditions. For example,
|
|
\n type FooStatus struct{ // Represents the observations of a
|
|
foo's current state. // Known .status.conditions.type are: \"Available\",
|
|
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
|
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
|
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
|
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
|
properties:
|
|
lastTransitionTime:
|
|
description: lastTransitionTime is the 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: message is a human readable message indicating
|
|
details about the transition. This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: observedGeneration represents the .metadata.generation
|
|
that the condition was set based upon. For instance, if .metadata.generation
|
|
is currently 12, but the .status.conditions[x].observedGeneration
|
|
is 9, the condition is out of date with respect to the current
|
|
state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: reason contains a programmatic identifier indicating
|
|
the reason for the condition's last transition. Producers
|
|
of specific condition types may define expected values and
|
|
meanings for this field, and whether the values are considered
|
|
a guaranteed API. The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
--- Many .condition.type values are consistent across resources
|
|
like Available, but because arbitrary conditions can be useful
|
|
(see .node.status.conditions), the ability to deconflict is
|
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
dynatraceApi:
|
|
description: Observed state of Dynatrace API
|
|
properties:
|
|
lastTokenScopeRequest:
|
|
description: Time of the last token request
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
kubeSystemUUID:
|
|
description: KubeSystemUUID contains the UUID of the current Kubernetes
|
|
cluster
|
|
type: string
|
|
lastTokenProbeTimestamp:
|
|
description: LastTokenProbeTimestamp tracks when the last request
|
|
for the API token validity was sent
|
|
format: date-time
|
|
type: string
|
|
oneAgent:
|
|
description: Observed state of OneAgent
|
|
properties:
|
|
connectionInfoStatus:
|
|
description: Information about OneAgent's connections
|
|
properties:
|
|
communicationHosts:
|
|
description: List of communication hosts
|
|
items:
|
|
properties:
|
|
host:
|
|
description: Host domain
|
|
type: string
|
|
port:
|
|
description: Connection port
|
|
format: int32
|
|
type: integer
|
|
protocol:
|
|
description: Connection protocol
|
|
type: string
|
|
type: object
|
|
type: array
|
|
endpoints:
|
|
description: Available connection endpoints
|
|
type: string
|
|
lastRequest:
|
|
description: Time of the last connection request
|
|
format: date-time
|
|
type: string
|
|
tenantUUID:
|
|
description: UUID of the tenant, received from the tenant
|
|
type: string
|
|
type: object
|
|
healthcheck:
|
|
description: Commands used for OneAgent's readiness probe
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
imageID:
|
|
description: Image ID
|
|
type: string
|
|
instances:
|
|
additionalProperties:
|
|
properties:
|
|
ipAddress:
|
|
description: IP address of the pod
|
|
type: string
|
|
podName:
|
|
description: Name of the OneAgent pod
|
|
type: string
|
|
type: object
|
|
description: List of deployed OneAgent instances
|
|
type: object
|
|
lastInstanceStatusUpdate:
|
|
description: Time of the last instance status update
|
|
format: date-time
|
|
type: string
|
|
lastProbeTimestamp:
|
|
description: Indicates when the last check for a new version was
|
|
performed
|
|
format: date-time
|
|
type: string
|
|
source:
|
|
description: Source of the image (tenant-registry, public-registry,
|
|
...)
|
|
type: string
|
|
version:
|
|
description: Image version
|
|
type: string
|
|
type: object
|
|
phase:
|
|
description: Defines the current state (Running, Updating, Error,
|
|
...)
|
|
type: string
|
|
synthetic:
|
|
description: Observed state of Synthetic
|
|
properties:
|
|
imageID:
|
|
description: Image ID
|
|
type: string
|
|
lastProbeTimestamp:
|
|
description: Indicates when the last check for a new version was
|
|
performed
|
|
format: date-time
|
|
type: string
|
|
source:
|
|
description: Source of the image (tenant-registry, public-registry,
|
|
...)
|
|
type: string
|
|
version:
|
|
description: Image version
|
|
type: string
|
|
type: object
|
|
updatedTimestamp:
|
|
description: UpdatedTimestamp indicates when the instance was last
|
|
updated
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.13.0
|
|
name: edgeconnects.dynatrace.com
|
|
spec:
|
|
group: dynatrace.com
|
|
names:
|
|
categories:
|
|
- dynatrace
|
|
kind: EdgeConnect
|
|
listKind: EdgeConnectList
|
|
plural: edgeconnects
|
|
singular: edgeconnect
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.apiServer
|
|
name: ApiServer
|
|
type: string
|
|
- jsonPath: .status.phase
|
|
name: Status
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: EdgeConnect is the Schema for the EdgeConnect 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: EdgeConnectSpec defines the desired state of EdgeConnect
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
description: Adds additional annotations to the EdgeConnect pods
|
|
type: object
|
|
apiServer:
|
|
description: Location of the Dynatrace API to connect to, including
|
|
your specific environment UUID
|
|
type: string
|
|
autoUpdate:
|
|
default: true
|
|
description: 'Enables automatic restarts of EdgeConnect pods in case
|
|
a new version is available (the default value is: true)'
|
|
type: boolean
|
|
customPullSecret:
|
|
description: Pull secret for your private registry
|
|
type: string
|
|
env:
|
|
description: Adds additional environment variables to the EdgeConnect
|
|
pods
|
|
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 previously 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.
|
|
Double $$ are reduced to a single $, which allows for escaping
|
|
the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
|
|
string literal "$(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
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
description: 'Selects a field of the pod: supports metadata.name,
|
|
metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
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:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: Specifies the output format of the exposed
|
|
resources, defaults to "1"
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
description: 'Required: resource to select'
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
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
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
hostRestrictions:
|
|
description: Restrict outgoing HTTP requests to your internal resources
|
|
to specified hosts
|
|
example: internal.example.org,*.dev.example.org
|
|
type: string
|
|
imageRef:
|
|
description: Overrides the default image
|
|
properties:
|
|
repository:
|
|
description: Custom EdgeConnect image repository
|
|
example: docker.io/dynatrace/edgeconnect
|
|
type: string
|
|
tag:
|
|
description: Indicates version of the EdgeConnect image to use
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
description: Adds additional labels to the EdgeConnect pods
|
|
type: object
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
description: Node selector to control the selection of nodes for the
|
|
EdgeConnect pods
|
|
type: object
|
|
oauth:
|
|
description: EdgeConnect uses the OAuth client to authenticate itself
|
|
with the Dynatrace platform.
|
|
properties:
|
|
clientSecret:
|
|
description: Name of the secret that holds oauth clientId/secret
|
|
type: string
|
|
endpoint:
|
|
description: Token endpoint URL of Dynatrace SSO
|
|
type: string
|
|
resource:
|
|
description: URN identifying your account. You get the URN when
|
|
creating the OAuth client
|
|
type: string
|
|
required:
|
|
- clientSecret
|
|
- endpoint
|
|
- resource
|
|
type: object
|
|
replicas:
|
|
default: 1
|
|
description: 'Amount of replicas for your EdgeConnect (the default
|
|
value is: 1)'
|
|
format: int32
|
|
type: integer
|
|
resources:
|
|
description: Defines resources requests and limits for single pods
|
|
properties:
|
|
claims:
|
|
description: "Claims lists the names of resources, defined in
|
|
spec.resourceClaims, that are used by this container. \n This
|
|
is an alpha field and requires enabling the DynamicResourceAllocation
|
|
feature gate. \n This field is immutable. It can only be set
|
|
for containers."
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: Name must match the name of one entry in pod.spec.resourceClaims
|
|
of the Pod where this field is used. It makes that resource
|
|
available inside a container.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: 'Limits describes the maximum amount of compute resources
|
|
allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
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. Requests cannot exceed Limits.
|
|
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
|
type: object
|
|
type: object
|
|
tolerations:
|
|
description: Sets tolerations for the EdgeConnect pods
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates any
|
|
taint that matches the triple <key,value,effect> using the matching
|
|
operator <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
|
|
topologySpreadConstraints:
|
|
description: Sets topology spread constraints for the EdgeConnect
|
|
pods
|
|
items:
|
|
description: TopologySpreadConstraint specifies how to spread matching
|
|
pods among the given topology.
|
|
properties:
|
|
labelSelector:
|
|
description: LabelSelector is used to find matching pods. Pods
|
|
that match this label selector are counted to determine the
|
|
number of pods in their corresponding topology domain.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: A label selector requirement is a selector
|
|
that contains values, a key, and an operator that relates
|
|
the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: operator represents a key's relationship
|
|
to a set of values. Valid operators are In, NotIn,
|
|
Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: values is an array of string values.
|
|
If the operator is In or NotIn, the values array
|
|
must be non-empty. If the operator is Exists or
|
|
DoesNotExist, the values array must be empty. This
|
|
array is replaced during a strategic merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: matchLabels is a map of {key,value} pairs.
|
|
A single {key,value} in the matchLabels map is equivalent
|
|
to an element of matchExpressions, whose key field is
|
|
"key", the operator is "In", and the values array contains
|
|
only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
description: "MatchLabelKeys is a set of pod label keys to select
|
|
the pods over which spreading will be calculated. The keys
|
|
are used to lookup values from the incoming pod labels, those
|
|
key-value labels are ANDed with labelSelector to select the
|
|
group of existing pods over which spreading will be calculated
|
|
for the incoming pod. The same key is forbidden to exist in
|
|
both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot
|
|
be set when LabelSelector isn't set. Keys that don't exist
|
|
in the incoming pod labels will be ignored. A null or empty
|
|
list means only match against labelSelector. \n This is a
|
|
beta field and requires the MatchLabelKeysInPodTopologySpread
|
|
feature gate to be enabled (enabled by default)."
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
maxSkew:
|
|
description: 'MaxSkew describes the degree to which pods may
|
|
be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
|
|
it is the maximum permitted difference between the number
|
|
of matching pods in the target topology and the global minimum.
|
|
The global minimum is the minimum number of matching pods
|
|
in an eligible domain or zero if the number of eligible domains
|
|
is less than MinDomains. For example, in a 3-zone cluster,
|
|
MaxSkew is set to 1, and pods with the same labelSelector
|
|
spread as 2/2/1: In this case, the global minimum is 1. |
|
|
zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew
|
|
is 1, incoming pod can only be scheduled to zone3 to become
|
|
2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1)
|
|
on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming
|
|
pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
|
|
it is used to give higher precedence to topologies that satisfy
|
|
it. It''s a required field. Default value is 1 and 0 is not
|
|
allowed.'
|
|
format: int32
|
|
type: integer
|
|
minDomains:
|
|
description: "MinDomains indicates a minimum number of eligible
|
|
domains. When the number of eligible domains with matching
|
|
topology keys is less than minDomains, Pod Topology Spread
|
|
treats \"global minimum\" as 0, and then the calculation of
|
|
Skew is performed. And when the number of eligible domains
|
|
with matching topology keys equals or greater than minDomains,
|
|
this value has no effect on scheduling. As a result, when
|
|
the number of eligible domains is less than minDomains, scheduler
|
|
won't schedule more than maxSkew Pods to those domains. If
|
|
value is nil, the constraint behaves as if MinDomains is equal
|
|
to 1. Valid values are integers greater than 0. When value
|
|
is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For
|
|
example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains
|
|
is set to 5 and pods with the same labelSelector spread as
|
|
2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P |
|
|
The number of domains is less than 5(MinDomains), so \"global
|
|
minimum\" is treated as 0. In this situation, new pod with
|
|
the same labelSelector cannot be scheduled, because computed
|
|
skew will be 3(3 - 0) if new Pod is scheduled to any of the
|
|
three zones, it will violate MaxSkew. \n This is a beta field
|
|
and requires the MinDomainsInPodTopologySpread feature gate
|
|
to be enabled (enabled by default)."
|
|
format: int32
|
|
type: integer
|
|
nodeAffinityPolicy:
|
|
description: "NodeAffinityPolicy indicates how we will treat
|
|
Pod's nodeAffinity/nodeSelector when calculating pod topology
|
|
spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector
|
|
are included in the calculations. - Ignore: nodeAffinity/nodeSelector
|
|
are ignored. All nodes are included in the calculations. \n
|
|
If this value is nil, the behavior is equivalent to the Honor
|
|
policy. This is a beta-level feature default enabled by the
|
|
NodeInclusionPolicyInPodTopologySpread feature flag."
|
|
type: string
|
|
nodeTaintsPolicy:
|
|
description: "NodeTaintsPolicy indicates how we will treat node
|
|
taints when calculating pod topology spread skew. Options
|
|
are: - Honor: nodes without taints, along with tainted nodes
|
|
for which the incoming pod has a toleration, are included.
|
|
- Ignore: node taints are ignored. All nodes are included.
|
|
\n If this value is nil, the behavior is equivalent to the
|
|
Ignore policy. This is a beta-level feature default enabled
|
|
by the NodeInclusionPolicyInPodTopologySpread feature flag."
|
|
type: string
|
|
topologyKey:
|
|
description: TopologyKey is the key of node labels. Nodes that
|
|
have a label with this key and identical values are considered
|
|
to be in the same topology. We consider each <key, value>
|
|
as a "bucket", and try to put balanced number of pods into
|
|
each bucket. We define a domain as a particular instance of
|
|
a topology. Also, we define an eligible domain as a domain
|
|
whose nodes meet the requirements of nodeAffinityPolicy and
|
|
nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname",
|
|
each Node is a domain of that topology. And, if TopologyKey
|
|
is "topology.kubernetes.io/zone", each zone is a domain of
|
|
that topology. It's a required field.
|
|
type: string
|
|
whenUnsatisfiable:
|
|
description: 'WhenUnsatisfiable indicates how to deal with a
|
|
pod if it doesn''t satisfy the spread constraint. - DoNotSchedule
|
|
(default) tells the scheduler not to schedule it. - ScheduleAnyway
|
|
tells the scheduler to schedule the pod in any location, but
|
|
giving higher precedence to topologies that would help reduce
|
|
the skew. A constraint is considered "Unsatisfiable" for an
|
|
incoming pod if and only if every possible node assignment
|
|
for that pod would violate "MaxSkew" on some topology. For
|
|
example, in a 3-zone cluster, MaxSkew is set to 1, and pods
|
|
with the same labelSelector spread as 3/1/1: | zone1 | zone2
|
|
| zone3 | | P P P | P | P | If WhenUnsatisfiable is
|
|
set to DoNotSchedule, incoming pod can only be scheduled to
|
|
zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on
|
|
zone2(zone3) satisfies MaxSkew(1). In other words, the cluster
|
|
can still be imbalanced, but scheduler won''t make it *more*
|
|
imbalanced. It''s a required field.'
|
|
type: string
|
|
required:
|
|
- maxSkew
|
|
- topologyKey
|
|
- whenUnsatisfiable
|
|
type: object
|
|
type: array
|
|
required:
|
|
- apiServer
|
|
- oauth
|
|
type: object
|
|
status:
|
|
description: EdgeConnectStatus defines the observed state of EdgeConnect
|
|
properties:
|
|
conditions:
|
|
description: Conditions includes status about the current state of
|
|
the instance
|
|
items:
|
|
description: "Condition contains details for one aspect of the current
|
|
state of this API Resource. --- This struct is intended for direct
|
|
use as an array at the field path .status.conditions. For example,
|
|
\n type FooStatus struct{ // Represents the observations of a
|
|
foo's current state. // Known .status.conditions.type are: \"Available\",
|
|
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
|
|
// +listType=map // +listMapKey=type Conditions []metav1.Condition
|
|
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
|
|
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
|
|
properties:
|
|
lastTransitionTime:
|
|
description: lastTransitionTime is the 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: message is a human readable message indicating
|
|
details about the transition. This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: observedGeneration represents the .metadata.generation
|
|
that the condition was set based upon. For instance, if .metadata.generation
|
|
is currently 12, but the .status.conditions[x].observedGeneration
|
|
is 9, the condition is out of date with respect to the current
|
|
state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: reason contains a programmatic identifier indicating
|
|
the reason for the condition's last transition. Producers
|
|
of specific condition types may define expected values and
|
|
meanings for this field, and whether the values are considered
|
|
a guaranteed API. The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
--- Many .condition.type values are consistent across resources
|
|
like Available, but because arbitrary conditions can be useful
|
|
(see .node.status.conditions), the ability to deconflict is
|
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
phase:
|
|
description: Defines the current state (Running, Updating, Error,
|
|
...)
|
|
type: string
|
|
updatedTimestamp:
|
|
description: Indicates when the resource was last updated
|
|
format: date-time
|
|
type: string
|
|
version:
|
|
description: Version used for the Edgeconnect image
|
|
properties:
|
|
imageID:
|
|
description: Image ID
|
|
type: string
|
|
lastProbeTimestamp:
|
|
description: Indicates when the last check for a new version was
|
|
performed
|
|
format: date-time
|
|
type: string
|
|
source:
|
|
description: Source of the image (tenant-registry, public-registry,
|
|
...)
|
|
type: string
|
|
version:
|
|
description: Image version
|
|
type: string
|
|
type: object
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
{{- end -}}
|