diff --git a/packs/appdynamics-operators-1.22.374/README.md b/packs/appdynamics-operators-1.22.374/README.md
new file mode 100644
index 00000000..7e5cc596
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/README.md
@@ -0,0 +1,21 @@
+## The Appdynamics Operator Cloud Helm Charts
+An Add-on pack for Spectro Cloud to use the monitoring of k8s cluster with AppDynamics collectors.
+
+## Appdynamics Cloud Helm Charts
+This repository maintains helm charts for installing Appdynamics Cloud Operators.
+
+
+## Parameters
+| Parameter | Description |
+|-----------|-------------|
+| clusterName | String to specify the name of the k8s cluster |
+| endpoint | The endpoint Tenant to which you want to send the data to. Please refer the product guide link from References for more details |
+| clientId | clientId of your Tenant . Please refer the product guide link from References for more details |
+| clientSecret | clientSecret of your Tenant. Please refer the product guide link from References for more details |
+| tokenUrl | tokenUrl of your Tenant. Please refer the product guide link from References for more details |
+| tenantId | tenantId of your Tenant. Please refer the product guide link from References for more details |
+
+
+## References
+Here is the complete product guide about the AppDynamics collectors.
+https://docs.appdynamics.com/fso/cloud-native-app-obs/en/kubernetes-and-app-service-monitoring/install-kubernetes-and-app-service-monitoring
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators-1.22.374.tgz b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators-1.22.374.tgz
new file mode 100644
index 00000000..5943e6db
Binary files /dev/null and b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators-1.22.374.tgz differ
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/Chart.lock b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/Chart.lock
new file mode 100644
index 00000000..cd91d213
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/Chart.lock
@@ -0,0 +1,12 @@
+dependencies:
+- name: appdynamics-cloud-operator
+ repository: ""
+ version: 1.22.0
+- name: opentelemetry-operator
+ repository: ""
+ version: 0.43.0
+- name: appdynamics-smartagent
+ repository: https://artifactory.bare.appdynamics.com/artifactory/cosmosx-helm
+ version: 24.4.72
+digest: sha256:5f54d2005b3ffee9e5e913909c06353bac8e6eaf2de39a427baa42b0e7ec5550
+generated: "2024-07-25T10:55:08.939862768Z"
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/Chart.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/Chart.yaml
new file mode 100644
index 00000000..89bf0d58
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/Chart.yaml
@@ -0,0 +1,34 @@
+apiVersion: v2
+appVersion: 1.22.374
+dependencies:
+- condition: appdynamics-cloud-operator.enabled
+ name: appdynamics-cloud-operator
+ repository: ""
+ version: 1.22.0
+- condition: opentelemetry-operator.enabled
+ name: opentelemetry-operator
+ repository: ""
+ version: 0.43.0
+- condition: appdynamics-smartagent.enabled
+ name: appdynamics-smartagent
+ repository: https://artifactory.bare.appdynamics.com/artifactory/cosmosx-helm
+ version: 24.4.72
+description: Helm Charts for installing Appdynamics Operators
+home: https://appdynamics.com
+icon: https://raw.githubusercontent.com/CiscoDevNet/appdynamics-charts/master/logo.png
+keywords:
+- appdynamics
+- cloud
+- operator
+- cluster
+- kubernetes
+- monitoring
+- pod
+- deployment
+- orchestration
+maintainers:
+- email: support@appdynamics.com
+ name: AppDynamics
+name: appdynamics-operators
+type: application
+version: 1.22.374
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/LICENSE b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/LICENSE
new file mode 100644
index 00000000..d17050b1
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/LICENSE
@@ -0,0 +1,11 @@
+APPDYNAMICS
+END USER LICENSE AGREEMENT
+
+By accessing the Software herein, you (and the organization you represent) ("You") acknowledge and agree that the use
+of the Software and open source software are governed by (1) the General Terms found at
+https://www.cisco.com/c/dam/en_us/about/doing_business/legal/Cisco_General_Terms.pdf and the applicable Product
+Specific Terms found at https://www.cisco.com/c/en/us/about/legal/cloud-and-software/software-terms.html or (2) any
+other superseding agreement between AppDynamics, or its parent company Cisco Systems, Inc., as applicable, and You.
+References to End User in any superseding agreement shall mean You.
+
+AppDynamics Proprietary and Confidential * Revision 2024.03
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/.helmignore b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/.helmignore
new file mode 100644
index 00000000..0e8a0eb3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/Chart.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/Chart.yaml
new file mode 100644
index 00000000..ca52d7c0
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/Chart.yaml
@@ -0,0 +1,18 @@
+apiVersion: v2
+appVersion: 24.5.0
+description: Helm chart for Appdynamics Cloud Operator
+home: https://appdynamics.com
+icon: https://raw.githubusercontent.com/CiscoDevNet/appdynamics-charts/master/logo.png
+keywords:
+- appdynamics
+- operator
+- cluster
+- kubernetes
+- monitoring
+- pod
+- deployment
+maintainers:
+- email: support@appdynamics.com
+ name: AppDynamics
+name: appdynamics-cloud-operator
+version: 1.22.0
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/manager/manager-config.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/manager/manager-config.yaml
new file mode 100644
index 00000000..1d1624e8
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/manager/manager-config.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: manager-config
+ namespace: {{ .Release.Namespace }}
+data:
+ apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
+ kind: ControllerManagerConfig
+ health: |
+ healthProbeBindAddress: :8081
+ metrics: |
+ bindAddress: 127.0.0.1:8080
+ webhook: |
+ port: 9443
+ leaderElection: |
+ leaderElect: true
+ resourceName: 42f55d18.appdynamics.com
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/manager/manager.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/manager/manager.yaml
new file mode 100644
index 00000000..87982eab
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/manager/manager.yaml
@@ -0,0 +1,95 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ printf "%s-%s" .Release.Name "appdynamics-cloud-operator" | trunc 63 }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ control-plane: appdynamics-cloud-operator
+spec:
+ selector:
+ matchLabels:
+ control-plane: appdynamics-cloud-operator
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ control-plane: appdynamics-cloud-operator
+ {{- if .Values.operatorPod.labels -}}
+ {{- toYaml .Values.operatorPod.labels | nindent 8 }}
+ {{- end }}
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ {{- if .Values.operatorPod.annotations -}}
+ {{- toYaml .Values.operatorPod.annotations | nindent 8 }}
+ {{- end }}
+ spec:
+ containers:
+ - name: kube-rbac-proxy
+ image: {{ .Values.kubeRbacProxy.image | default "gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0" }}
+ imagePullPolicy: {{ .Values.kubeRbacProxy.imagePullPolicy | default "IfNotPresent" }}
+ args:
+ - "--secure-listen-address=0.0.0.0:8443"
+ - "--upstream=http://127.0.0.1:8080/"
+ - "--logtostderr=true"
+ - "--v=0"
+ ports:
+ - containerPort: 8443
+ name: https
+ - name: manager
+ args:
+ - --leader-elect
+ image: {{ .Values.operatorPod.image }}
+ imagePullPolicy: {{ .Values.operatorPod.imagePullPolicy }}
+ env:
+ - name: APPDYNAMICS_OPERATOR_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: MANAGE_OPEN_TELEMETRY_CRDS
+ value: {{ .Values.enableOTelCRDManagement | quote }}
+ - name: WATCH_CLUSTER
+ value: {{ eq .Values.watchMode "cluster" | quote }}
+ {{- if .Values.operatorPod.dev }}
+ {{- toYaml .Values.operatorPod.dev | nindent 10 }}
+ {{- end }}
+ - name: CSAAS_AGENTS_CONTROLLER_ENABLED
+ value: {{ .Values.enableUnifiedOperator | quote}}
+ securityContext:
+ allowPrivilegeEscalation: false
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {{- toYaml .Values.operatorPod.resources | nindent 10 }}
+ {{- if .Values.operatorPod.priorityClassName }}
+ priorityClassName: {{ .Values.operatorPod.priorityClassName }}
+ {{- end }}
+ imagePullSecrets:
+ {{- toYaml .Values.operatorPod.imagePullSecrets | nindent 8}}
+ serviceAccountName: {{ .Values.operatorServiceAccount }}
+ terminationGracePeriodSeconds: 10
+ {{- if .Values.operatorPod.nodeSelector }}
+ nodeSelector:
+ {{- toYaml .Values.operatorPod.nodeSelector | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.affinity }}
+ affinity:
+ {{- toYaml .Values.operatorPod.affinity | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.tolerations }}
+ tolerations:
+ {{- toYaml .Values.operatorPod.tolerations | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.securityContext }}
+ securityContext:
+ {{- toYaml .Values.operatorPod.securityContext | nindent 8 }}
+ {{- end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/post-install-job.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/post-install-job.yaml
new file mode 100644
index 00000000..3131ee52
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/post-install-job.yaml
@@ -0,0 +1,65 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ printf "%s-%s" .Release.Name "appdynamics-crd-validator" | trunc 63 }}
+ labels:
+ app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
+ app.kubernetes.io/instance: {{ .Release.Name | quote }}
+ app.kubernetes.io/version: {{ .Chart.AppVersion }}
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ annotations:
+ # This is what defines this resource as a hook. Without this line, the
+ # job is considered part of the release.
+ "helm.sh/hook": post-install
+ "helm.sh/hook-weight": "-5"
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
+spec:
+ backoffLimit: 0
+ template:
+ metadata:
+ name: {{ printf "%s-%s" .Release.Name "appdynamics-crd-validator" | trunc 63 }}
+ labels:
+ app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
+ app.kubernetes.io/instance: {{ .Release.Name | quote }}
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ {{- if .Values.operatorPod.labels -}}
+ {{- toYaml .Values.operatorPod.labels | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.annotations }}
+ annotations:
+ {{- toYaml .Values.operatorPod.annotations | nindent 8 }}
+ {{- end }}
+ spec:
+ serviceAccountName: {{ .Values.operatorServiceAccount }}
+ restartPolicy: Never
+ containers:
+ - name: post-install-job
+ image: {{ .Values.operatorPod.image }}
+ imagePullPolicy: {{ .Values.operatorPod.imagePullPolicy }}
+ command: ["/crd-validator"]
+ env:
+ - name: MANAGE_OPEN_TELEMETRY_CRDS
+ value: {{ .Values.enableOTelCRDManagement | quote }}
+ - name: CSAAS_AGENTS_CONTROLLER_ENABLED
+ value: {{ .Values.enableUnifiedOperator | quote}}
+ imagePullSecrets:
+ {{- toYaml .Values.operatorPod.imagePullSecrets | nindent 8}}
+ {{- if .Values.operatorPod.priorityClassName }}
+ priorityClassName: {{ .Values.operatorPod.priorityClassName }}
+ {{- end }}
+ {{- if .Values.operatorPod.nodeSelector }}
+ nodeSelector:
+ {{- toYaml .Values.operatorPod.nodeSelector | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.affinity }}
+ affinity:
+ {{- toYaml .Values.operatorPod.affinity | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.tolerations }}
+ tolerations:
+ {{- toYaml .Values.operatorPod.tolerations | nindent 8 }}
+ {{- end }}
+ {{- if .Values.operatorPod.securityContext }}
+ securityContext:
+ {{- toYaml .Values.operatorPod.securityContext | nindent 8 }}
+ {{- end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_clusterrole.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_clusterrole.yaml
new file mode 100644
index 00000000..54b70ec6
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_clusterrole.yaml
@@ -0,0 +1,51 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: appdynamics-cloud-operator-clusterrole
+rules:
+- apiGroups:
+ - apiextensions.k8s.io
+ resources:
+ - customresourcedefinitions
+ verbs:
+ - get
+ - create
+ - update
+{{ if eq .Values.watchMode "cluster"}}
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ - configmaps
+ verbs:
+ - get
+ - create
+ - update
+ - list
+ - watch
+ - delete
+- apiGroups:
+ - apps
+ resources:
+ - deployments
+ - daemonsets
+ verbs:
+ - get
+ - create
+ - update
+ - list
+ - watch
+{{ if .Values.enableUnifiedOperator }}
+- apiGroups:
+ - ""
+ resources:
+ - services
+ verbs:
+ - get
+ - create
+ - update
+ - list
+ - watch
+ - delete
+{{ end }}
+{{ end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_clusterrole_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_clusterrole_binding.yaml
new file mode 100644
index 00000000..1ed009bc
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_clusterrole_binding.yaml
@@ -0,0 +1,12 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: appdynamics-cloud-operator-clusterrolebinding
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: appdynamics-cloud-operator-clusterrole
+subjects:
+- kind: ServiceAccount
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_role.yaml
new file mode 100644
index 00000000..18df4ff2
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_role.yaml
@@ -0,0 +1,44 @@
+{{ if eq .Values.watchMode "namespace" }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: appdynamics-cloud-operator-role
+ namespace: {{ .Release.Namespace }}
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - secrets
+ verbs:
+ - get
+ - create
+ - update
+ - list
+ - watch
+ - delete
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ verbs:
+ - get
+ - create
+ - update
+ - list
+ - watch
+{{ if .Values.enableUnifiedOperator }}
+- apiGroups:
+ - ""
+ resources:
+ - services
+ verbs:
+ - get
+ - create
+ - update
+ - list
+ - watch
+ - delete
+{{ end }}
+{{ end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_role_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_role_binding.yaml
new file mode 100644
index 00000000..a23a14b9
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/appdynamics_cloud_operator_role_binding.yaml
@@ -0,0 +1,13 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: appdynamics-cloud-operator-rolebinding
+ namespace: {{ .Release.Namespace }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: appdynamics-cloud-operator-role
+subjects:
+ - kind: ServiceAccount
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_client_clusterrole.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_client_clusterrole.yaml
new file mode 100644
index 00000000..115cd58d
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_client_clusterrole.yaml
@@ -0,0 +1,10 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: appdynamics-cloud-operator-metrics-reader
+ namespace: {{ .Release.Namespace }}
+rules:
+- nonResourceURLs:
+ - "/metrics"
+ verbs:
+ - get
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_role.yaml
new file mode 100644
index 00000000..90daacc3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_role.yaml
@@ -0,0 +1,18 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: appdynamics-cloud-operator-proxy-role
+ namespace: {{ .Release.Namespace }}
+rules:
+- apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
+- apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_role_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_role_binding.yaml
new file mode 100644
index 00000000..26a18c2f
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_role_binding.yaml
@@ -0,0 +1,13 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: appdynamics-cloud-operator-proxy-rolebinding
+ namespace: {{ .Release.Namespace }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: appdynamics-cloud-operator-proxy-role
+subjects:
+- kind: ServiceAccount
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_service.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_service.yaml
new file mode 100644
index 00000000..8a8a0f6a
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/auth_proxy_service.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ control-plane: appdynamics-cloud-operator
+ name: appdynamics-cloud-operator-metrics-service
+ namespace: {{ .Release.Namespace }}
+spec:
+ ports:
+ - name: https
+ port: 8443
+ targetPort: https
+ selector:
+ control-plane: appdynamics-cloud-operator
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/leader_election_role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/leader_election_role.yaml
new file mode 100644
index 00000000..645c9615
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/leader_election_role.yaml
@@ -0,0 +1,38 @@
+# permissions to do leader election.
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: leader-election-role
+ namespace: {{ .Release.Namespace }}
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+- apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+- apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/leader_election_role_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/leader_election_role_binding.yaml
new file mode 100644
index 00000000..d9d72e04
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/leader_election_role_binding.yaml
@@ -0,0 +1,13 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: leader-election-rolebinding
+ namespace: {{ .Release.Namespace }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: leader-election-role
+subjects:
+- kind: ServiceAccount
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/role.yaml
new file mode 100644
index 00000000..c8d36bdf
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/role.yaml
@@ -0,0 +1,269 @@
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ creationTimestamp: null
+ name: appdynamics-cloud-operator-customresource-clusterrole
+rules:
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - clustermons
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - clustermons/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - clustermons/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - dbcollectors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - dbcollectors/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - dbcollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - dbconfigs
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - dbconfigs/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - dbconfigs/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - containermons
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - containermons/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - containermons/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - inframons
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - inframons/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - inframons/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - logcollectors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - logcollectors/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - logcollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - servermons
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - servermons/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - servermons/status
+ verbs:
+ - get
+ - patch
+ - update
+{{ if .Values.enableUnifiedOperator }}
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - clusteragents
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - clusteragents/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - clusteragents/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - infravizs
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - infravizs/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - infravizs/status
+ verbs:
+ - get
+ - patch
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - autoinstrumentationagents
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - autoinstrumentationagents/finalizers
+ verbs:
+ - update
+- apiGroups:
+ - cluster.appdynamics.com
+ resources:
+ - autoinstrumentationagents/status
+ verbs:
+ - get
+ - patch
+ - update
+{{ end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/role_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/role_binding.yaml
new file mode 100644
index 00000000..6415e319
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/role_binding.yaml
@@ -0,0 +1,12 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: appdynamics-cloud-operator-customresource-clusterrolebinding
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: appdynamics-cloud-operator-customresource-clusterrole
+subjects:
+- kind: ServiceAccount
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/service_account.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/service_account.yaml
new file mode 100644
index 00000000..71ca7ff3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/rbac/service_account.yaml
@@ -0,0 +1,5 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_health_connection.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_health_connection.yaml
new file mode 100644
index 00000000..488ccdd2
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_health_connection.yaml
@@ -0,0 +1,52 @@
+{{- if .Values.testFramework.enabled }}
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "appdynamics-cloud-operator-health-test-connection"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
+ app.kubernetes.io/instance: {{ .Release.Name | quote }}
+ app.kubernetes.io/version: {{ .Chart.AppVersion }}
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ annotations:
+ # This is what defines this resource as a hook. Without this line, the
+ # job is considered part of the release.
+ "helm.sh/hook": test
+ "helm.sh/hook-weight": "1"
+ "helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded
+spec:
+ containers:
+ - name: wget
+ image: "{{ .Values.testFramework.image.repository }}:{{ .Values.testFramework.image.tag }}"
+ env:
+ - name: MANAGER_HEALTH_SERVICE_CLUSTERIP
+ value: "appdynamics-cloud-operator-health-test-service"
+ - name: MANAGER_HEALTH_SERVICE_PORT
+ value: "8081"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the manager health is ok.
+ - |
+ options="--server-response --spider --timeout=10"
+
+ liveness_url="$MANAGER_HEALTH_SERVICE_CLUSTERIP:$MANAGER_HEALTH_SERVICE_PORT/healthz"
+ liveness_status=$(wget $options $liveness_url 2>&1 | grep "HTTP/" | awk '{print $2}')
+ if [ "$liveness_status" != "200" ]
+ then
+ echo "Liveness check failed"
+ exit 1
+ fi
+
+ readiness_url="$MANAGER_HEALTH_SERVICE_CLUSTERIP:$MANAGER_HEALTH_SERVICE_PORT/readyz"
+ readiness_status=$(wget $options $readiness_url 2>&1 | grep "HTTP/" | awk '{print $2}')
+ if [ "$readiness_status" != "200" ]
+ then
+ echo "Readiness check failed"
+ exit 1
+ fi
+
+ exit 0
+ restartPolicy: Never
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_health_service.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_health_service.yaml
new file mode 100644
index 00000000..f847e7cd
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_health_service.yaml
@@ -0,0 +1,26 @@
+{{- if .Values.testFramework.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: "appdynamics-cloud-operator-health-test-service"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ control-plane: appdynamics-cloud-operator
+ app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
+ app.kubernetes.io/instance: {{ .Release.Name | quote }}
+ app.kubernetes.io/version: {{ .Chart.AppVersion }}
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ annotations:
+ # This is what defines this resource as a hook. Without this line, the
+ # job is considered part of the release.
+ "helm.sh/hook": test
+ "helm.sh/hook-weight": "0"
+ "helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded, hook-failure
+spec:
+ ports:
+ - name: healthz
+ port: 8081
+ targetPort: 8081
+ selector:
+ control-plane: appdynamics-cloud-operator
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_metrics_clusterrole_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_metrics_clusterrole_binding.yaml
new file mode 100644
index 00000000..6cb3276f
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_metrics_clusterrole_binding.yaml
@@ -0,0 +1,26 @@
+{{- if .Values.testFramework.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: "appdynamics-cloud-operator-metrics-test-clusterrole-binding"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
+ app.kubernetes.io/instance: {{ .Release.Name | quote }}
+ app.kubernetes.io/version: {{ .Chart.AppVersion }}
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ annotations:
+ # This is what defines this resource as a hook. Without this line, the
+ # job is considered part of the release.
+ "helm.sh/hook": test
+ "helm.sh/hook-weight": "2"
+ "helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded, hook-failure
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: appdynamics-cloud-operator-metrics-reader
+subjects:
+ - kind: ServiceAccount
+ name: {{ .Values.operatorServiceAccount }}
+ namespace: {{ .Release.Namespace }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_metrics_connection.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_metrics_connection.yaml
new file mode 100644
index 00000000..79ad4828
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/templates/tests/test_metrics_connection.yaml
@@ -0,0 +1,44 @@
+{{- if .Values.testFramework.enabled }}
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "appdynamics-cloud-operator-metrics-test-connection"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
+ app.kubernetes.io/instance: {{ .Release.Name | quote }}
+ app.kubernetes.io/version: {{ .Chart.AppVersion }}
+ helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ annotations:
+ # This is what defines this resource as a hook. Without this line, the
+ # job is considered part of the release.
+ "helm.sh/hook": test
+ "helm.sh/hook-weight": "3"
+ "helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded
+spec:
+ serviceAccountName: {{ .Values.operatorServiceAccount }}
+ containers:
+ - name: wget
+ image: "{{ .Values.testFramework.image.repository }}:{{ .Values.testFramework.image.tag }}"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "appdynamics-cloud-operator-metrics-service"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the appdynamics-cloud-operator-metrics-service is up.
+ - |
+ options="--no-check-certificate --server-response --spider --timeout=10"
+ auth_header="Authorization: Bearer `cat /var/run/secrets/kubernetes.io/serviceaccount/token`"
+ url="https://$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT/metrics"
+
+ metrics_status=$(wget $options --header="$auth_header" $url 2>&1 | grep "HTTP/" | awk '{print $2}')
+ if [ "$metrics_status" != "200" ]
+ then
+ echo "Metrics check failed"
+ exit 1
+ fi
+ restartPolicy: Never
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/values.schema.json b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/values.schema.json
new file mode 100644
index 00000000..b5eab2d3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/values.schema.json
@@ -0,0 +1,92 @@
+{
+ "$schema": "http://json-schema.org/schema#",
+ "type": "object",
+ "title": "Values",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "global": {
+ "type": "object"
+ },
+ "operatorServiceAccount": {
+ "description": "serviceAccount name for Appdynamics cloud operator",
+ "type": "string"
+ },
+ "watchMode": {
+ "description": "changes the scope for certain resources to namespace or cluster scope",
+ "type": "string",
+ "enum": ["namespace","cluster"]
+ },
+ "enableOTelCRDManagement": {
+ "description": "enable OTel CRD management by Appdynamics cloud operator ",
+ "type": "boolean"
+ },
+ "enableUnifiedOperator": {
+ "description": "enable cSaaS agent controllers",
+ "type": "boolean"
+ },
+ "operatorPod": {
+ "description": "configuration for Appdynamics cloud operator pod",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "image": {
+ "description": "image URL of Appdynamics cloud operator",
+ "type": "string"
+ },
+ "imagePullPolicy": {
+ "description": "image pull policy for Appdynamics cloud operator image",
+ "type": "string"
+ }
+ },
+ "required": [
+ "image"
+ ]
+ },
+ "kubeRbacProxy": {
+ "description": "configuration for kube-rbac-proxy container",
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "image": {
+ "description": "image URL of kube-rbac-proxy",
+ "type": "string"
+ },
+ "imagePullPolicy": {
+ "description": "image pull policy for kube-rbac-proxy",
+ "type": "string"
+ }
+ }
+ },
+ "testFramework": {
+ "description": "test configuration for Appdynamics cloud operator",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "enable test for Appdynamics cloud operator",
+ "type": "boolean"
+ },
+ "image": {
+ "description": "image information of test container",
+ "type": "object",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "description": "image repository of test container",
+ "type": "string"
+ },
+ "tag": {
+ "description": "image tag of test container",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/values.yaml
new file mode 100644
index 00000000..5a78c181
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-cloud-operator/values.yaml
@@ -0,0 +1,30 @@
+operatorServiceAccount: appdynamics-cloud-operator
+enableOTelCRDManagement: true
+enableUnifiedOperator: false
+watchMode: namespace
+operatorPod:
+ image: appdynamics/appdynamics-cloud-operator:24.7.0-1475
+ imagePullPolicy: Always
+ resources:
+ limits:
+ cpu: 200m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 64Mi
+ labels: {}
+ annotations: {}
+ nodeSelector: {}
+ imagePullSecrets: []
+ affinity: {}
+ tolerations: []
+ securityContext: {}
+ priorityClassName: null
+kubeRbacProxy: {}
+
+testFramework:
+ # Can be used to disable rendering test resources when using helm template
+ enabled: true
+ image:
+ repository: busybox
+ tag: latest
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/.helmignore b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/.helmignore
new file mode 100644
index 00000000..50d9f6e7
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/.helmignore
@@ -0,0 +1,24 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
+build/
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/Chart.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/Chart.yaml
new file mode 100644
index 00000000..337efc5a
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/Chart.yaml
@@ -0,0 +1,8 @@
+apiVersion: v2
+appVersion: 24.4.72
+description: Helm Charts for installing Appdynamics Smart Agent
+home: https://appdynamics.com
+icon: https://raw.githubusercontent.com/CiscoDevNet/appdynamics-charts/master/logo.png
+name: appdynamics-smartagent
+type: application
+version: 24.4.72
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/NOTES.txt b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/NOTES.txt
new file mode 100644
index 00000000..bebfa83b
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/NOTES.txt
@@ -0,0 +1,30 @@
+CHART NAME: {{ .Chart.Name }}
+CHART VERSION: {{ .Chart.Version }}
+APP VERSION: {{ .Chart.AppVersion }}
+
+** Please be patient while the chart is being deployed **
+
+The chart installs the Smart Agent version: {{ .Values.image.tag | default .Chart.AppVersion }}.
+This Smart Agent enable managing the Life Cycle of other FSO Agents.
+
+Smart Agent uses Open Agent Management Protocol (OpAMP) to communicate with the service to enabling
+the managing the Life Cycle(LC) of Full Stack Observatory (FSO) agents.
+
+OpAMP: https://github.com/open-telemetry/opamp-spec/blob/main/specification.md
+
+Smart Agent is installed with following permissions in the cluster:
+
+ {{- range $role := .Values.clusterRole }}
+ {{- with $role.apiGroup}}
+ - apiGroups:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- with $role.resources }}
+ resources:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- with $role.verbs }}
+ verbs:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/_helpers.tpl b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/_helpers.tpl
new file mode 100644
index 00000000..5f424670
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/_helpers.tpl
@@ -0,0 +1,62 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "appdynamics-smartagent.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "appdynamics-smartagent.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "appdynamics-smartagent.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "appdynamics-smartagent.labels" -}}
+helm.sh/chart: {{ include "appdynamics-smartagent.chart" . }}
+{{ include "appdynamics-smartagent.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "appdynamics-smartagent.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "appdynamics-smartagent.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "appdynamics-smartagent.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "appdynamics-smartagent.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/cluster_role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/cluster_role.yaml
new file mode 100644
index 00000000..f58925f6
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/cluster_role.yaml
@@ -0,0 +1,21 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ labels:
+ {{- include "appdynamics-smartagent.labels" . | nindent 4 }}
+rules:
+ {{- range $role := .Values.clusterRole }}
+ {{- with $role.apiGroup}}
+ - apiGroups:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- with $role.resources }}
+ resources:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- with $role.verbs }}
+ verbs:
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ {{- end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/cluster_role_binding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/cluster_role_binding.yaml
new file mode 100644
index 00000000..754a5d55
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/cluster_role_binding.yaml
@@ -0,0 +1,14 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ labels:
+ {{- include "appdynamics-smartagent.labels" . | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "appdynamics-smartagent.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/configmap.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/configmap.yaml
new file mode 100644
index 00000000..e8c66dae
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/configmap.yaml
@@ -0,0 +1,40 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "appdynamics-smartagent.labels" . | nindent 4 }}
+data:
+ {{- if contains "localhost" .Values.solution.endpoint }}
+ SERVICE_URL: {{ .Values.solution.endpoint | required ".Values.solution.endpoint is required for a functional template" }}
+ {{- else }}
+ SERVICE_URL: {{ (printf "%s%s" .Values.solution.endpoint .Values.serviceAPIExtension) | required ".Values.solution.endpoint .Values.serviceAPIExtension is required for a functional template" }}
+
+ OAUTH_ID: {{ .Values.oauth.clientId | required ".Values.oauth.clientId is required for a functional template" | quote }}
+ OAUTH_URL: {{ .Values.oauth.tokenUrl | required ".Values.oauth.tokenUrl is required for a functional template" | quote }}
+ OAUTH_TENANT_ID: {{ .Values.oauth.tenantId | required ".Values.oauth.tenantId is required for a functional template" | quote }}
+ OAUTH_SCOPES: {{ .Values.oauth.scopes | quote }}
+
+ INSECURE: {{ default true .Values.tls.insecure | quote }}
+ CA_FILE: {{ .Values.tls.caFile | quote }}
+ CERT_FILE: {{ .Values.tls.certFile | quote }}
+ KEY_FILE: {{ .Values.tls.keyFile | quote }}
+
+ # Go Proxy Configuration https://pkg.go.dev/golang.org/x/net/http/httpproxy
+ HTTP_PROXY: {{ .Values.proxy.httpProxy | quote }}
+ HTTPS_PROXY: {{ .Values.proxy.httpsProxy | quote }}
+ NO_PROXY: {{ .Values.proxy.noProxy | quote }}
+ {{- end }}
+
+ AGENT_TYPE: {{ .Values.agent.type | required ".Values.agent.type is required for a functional template" }}
+ AGENT_NAMESPACE: {{ .Values.agent.namespace | required ".Values.agent.namespace is required for a functional template" }}
+
+ AGENT_NAME: {{ .Release.Name | required ".Release.Name is required for a functional template" }}
+ AGENT_PACKAGE_VERSION: {{ .Values.global.helmChartVersion | required ".Values.global.helmChartVersion is required for a functional template" }}
+
+ K8S_CLUSTER_NAME: {{ .Values.global.clusterName | required ".Values.global.clusterName is required for a functional template"}}
+
+ K8S_DEPLOYMENT_NAME: {{ include "appdynamics-smartagent.fullname" . }}
+
+ IMAGE_REGISTRY: {{ .Values.image.registry | quote }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/deployment.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/deployment.yaml
new file mode 100644
index 00000000..6333e474
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/deployment.yaml
@@ -0,0 +1,82 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "appdynamics-smartagent.labels" . | nindent 4 }}
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ {{- include "appdynamics-smartagent.selectorLabels" . | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
+ {{- with .Values.podAnnotations }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ {{- include "appdynamics-smartagent.selectorLabels" . | nindent 8 }}
+ spec:
+ {{- with .Values.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ serviceAccountName: {{ include "appdynamics-smartagent.serviceAccountName" . }}
+ securityContext:
+ {{- toYaml .Values.podSecurityContext | nindent 8 }}
+ containers:
+ - name: {{ .Chart.Name }}
+ securityContext:
+ {{- toYaml .Values.securityContext | nindent 12 }}
+ image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ env:
+ - name: K8S_NAMESPACE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ {{- if (lookup "v1" "Namespace" "" "kube-system").metadata }}
+ - name: K8S_CLUSTER_ID
+ value: {{ (lookup "v1" "Namespace" "" "kube-system").metadata.uid | required "Could not fetch kube-system uid to populate clusterID! " }}
+ {{- else }}
+ - name: K8S_CLUSTER_ID
+ value: {{ .Values.global.clusterId | required "clusterId needs to be specified when kube-system metadata is not accessible!" }}
+ {{- end }}
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ {{- if .Values.oauth.clientSecretEnvVar }}
+ - name: OAUTH_SECRET
+ {{- .Values.oauth.clientSecretEnvVar | toYaml | nindent 14}}
+ {{- end }}
+ envFrom:
+ - configMapRef:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ {{- if .Values.oauth.clientSecret }}
+ - secretRef:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ {{- end }}
+
+ resources:
+ {{- toYaml .Values.resources | nindent 12 }}
+ terminationGracePeriodSeconds: 30
+ {{- with .Values.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.affinity }}
+ affinity:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/secret.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/secret.yaml
new file mode 100644
index 00000000..19905ebb
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/secret.yaml
@@ -0,0 +1,12 @@
+{{- if .Values.oauth.clientSecret }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "appdynamics-smartagent.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "appdynamics-smartagent.labels" . | nindent 4 }}
+type: Opaque
+stringData:
+ OAUTH_SECRET: {{ .Values.oauth.clientSecret | required ".Values.oauth.clientSecret is required for a functional template" | quote }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/serviceaccount.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/serviceaccount.yaml
new file mode 100644
index 00000000..faa14443
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/templates/serviceaccount.yaml
@@ -0,0 +1,13 @@
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ include "appdynamics-smartagent.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "appdynamics-smartagent.labels" . | nindent 4 }}
+ {{- with .Values.serviceAccount.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/__snapshot__/deployment_test.yaml.snap b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/__snapshot__/deployment_test.yaml.snap
new file mode 100644
index 00000000..94a4ce2e
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/__snapshot__/deployment_test.yaml.snap
@@ -0,0 +1,64 @@
+should pass all kinds of assertion:
+ 1: |
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/name: appdynamics-smartagent
+ template:
+ metadata:
+ annotations:
+ checksum/config: 7fb599906d449843d8bac3baa22d3efedac031fdbef3b4741d4540a741808f7b
+ labels:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/name: appdynamics-smartagent
+ spec:
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/arch
+ operator: In
+ values:
+ - amd64
+ - arm64
+ - key: kubernetes.io/os
+ operator: In
+ values:
+ - linux
+ containers:
+ - env:
+ - name: K8S_NAMESPACE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: K8S_CLUSTER_ID
+ value: clusterID-test
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ envFrom:
+ - configMapRef:
+ name: fso-agent-appdynamics-smartagent
+ - secretRef:
+ name: fso-agent-appdynamics-smartagent
+ image: appdynamics/apache:latest
+ imagePullPolicy: Always
+ name: appdynamics-smartagent
+ resources:
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
+ securityContext: {}
+ securityContext: {}
+ serviceAccountName: fso-agent
+ terminationGracePeriodSeconds: 30
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/configmap_test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/configmap_test.yaml
new file mode 100644
index 00000000..d6d24c9f
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/configmap_test.yaml
@@ -0,0 +1,43 @@
+suite: test configmap
+values:
+ - ./values/values.yaml
+templates:
+ - configmap.yaml
+chart:
+ version: 0.1.0+test
+ appVersion: 0.1.0
+release:
+ name: "fso-agent"
+ namespace: "appdynamics"
+tests:
+ - it: should pass all kinds of assertion
+ template: configmap.yaml
+ documentIndex: 0
+ asserts:
+ - isKind:
+ of: ConfigMap
+ - isAPIVersion:
+ of: v1
+ - hasDocuments:
+ count: 1
+ - matchRegex:
+ path: metadata.name
+ pattern: ^.*-smartagent$
+ - notMatchRegex:
+ path: metadata.name
+ pattern: ^.*-foobar$
+ - equal:
+ path: metadata.namespace
+ value: appdynamics
+ - notEqual:
+ path: metadata.namespace
+ value: default
+ - equal:
+ path: metadata.labels
+ value:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: appdynamics-smartagent
+ app.kubernetes.io/version: 0.1.0
+ helm.sh/chart: appdynamics-smartagent-0.1.0_test
+
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/deployment_test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/deployment_test.yaml
new file mode 100644
index 00000000..b41137f6
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/deployment_test.yaml
@@ -0,0 +1,59 @@
+suite: test deployment
+values:
+ - ./values/values.yaml
+templates:
+ - configmap.yaml
+ - deployment.yaml
+chart:
+ version: 0.1.0+test
+ appVersion: 0.1.0
+release:
+ name: "fso-agent"
+ namespace: "appdynamics"
+tests:
+ - it: should pass all kinds of assertion
+ template: deployment.yaml
+ documentIndex: 0
+ asserts:
+ - equal:
+ path: spec.template.spec.containers[0].image
+ value: appdynamics/apache:latest
+ - notEqual:
+ path: spec.template.spec.containers[0].image
+ value: nginx:stable
+ - equal:
+ path: metadata.labels
+ value:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: appdynamics-smartagent
+ app.kubernetes.io/version: 0.1.0
+ helm.sh/chart: appdynamics-smartagent-0.1.0_test
+ - matchRegex:
+ path: metadata.name
+ pattern: ^.*-smartagent$
+ - notMatchRegex:
+ path: metadata.name
+ pattern: ^.*-foobar$
+ - isNull:
+ path: spec.template.spec.containers[0].ports
+ - isNull:
+ path: spec.template.nodeSelector
+ - isNull:
+ path: spec.template.spec.containers[1]
+ - isNotNull:
+ path: spec.template
+ - isNotEmpty:
+ path: spec.template.spec.containers[0]
+ - isNotEmpty:
+ path: spec.template.spec.containers[0].resources
+ - isKind:
+ of: Deployment
+ - isAPIVersion:
+ of: apps/v1
+ - hasDocuments:
+ count: 1
+ - matchSnapshot:
+ path: spec
+ - isNotNull:
+ path: spec.template.metadata.annotations
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/role_test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/role_test.yaml
new file mode 100644
index 00000000..6ebe1e00
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/role_test.yaml
@@ -0,0 +1,106 @@
+suite: test role
+values:
+ - ./values/values.yaml
+templates:
+ - cluster_role.yaml
+chart:
+ version: 0.1.0+test
+ appVersion: 0.1.0
+release:
+ name: "fso-agent"
+ namespace: "appdynamics"
+tests:
+ - it: should pass all kinds of assertion
+ template: cluster_role.yaml
+ documentIndex: 0
+ asserts:
+ - isKind:
+ of: ClusterRole
+ - isAPIVersion:
+ of: rbac.authorization.k8s.io/v1
+ - hasDocuments:
+ count: 1
+ - matchRegex:
+ path: metadata.name
+ pattern: ^.*-smartagent$
+ - notMatchRegex:
+ path: metadata.name
+ pattern: ^.*-foobar$
+ - isNull:
+ path: metadata.namespace
+ - equal:
+ path: metadata.labels
+ value:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: appdynamics-smartagent
+ app.kubernetes.io/version: 0.1.0
+ helm.sh/chart: appdynamics-smartagent-0.1.0_test
+ - isNotNull:
+ path: rules
+ - isNotEmpty:
+ path: rules[0]
+ - isNull:
+ path: rules[4]
+ - isNotEmpty:
+ path: rules[0].apiGroups
+ - isNotEmpty:
+ path: rules[0].resources
+ - isNotEmpty:
+ path: rules[0].verbs
+ - equal:
+ path: rules[0].apiGroups
+ value:
+ - ""
+ - equal:
+ path: rules[1].apiGroups
+ value:
+ - rbac.authorization.k8s.io
+ - equal:
+ path: rules[2].apiGroups
+ value:
+ - rbac.authorization.k8s.io
+ - equal:
+ path: rules[0].resources
+ value:
+ - configmaps
+ - secrets
+ - pods
+ - pods/logs
+ - pods/status
+ - namespaces
+ - serviceaccounts
+ - services
+ - equal:
+ path: rules[1].resources
+ value:
+ - rolebindings
+ - roles
+ - equal:
+ path: rules[2].resources
+ value:
+ - roles
+ - equal:
+ path: rules[0].verbs
+ value:
+ - get
+ - list
+ - watch
+ - update
+ - create
+ - delete
+ - patch
+ - equal:
+ path: rules[1].verbs
+ value:
+ - get
+ - list
+ - watch
+ - update
+ - create
+ - delete
+ - patch
+ - equal:
+ path: rules[2].verbs
+ value:
+ - bind
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/rolebinding_test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/rolebinding_test.yaml
new file mode 100644
index 00000000..32d55edc
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/rolebinding_test.yaml
@@ -0,0 +1,79 @@
+suite: test rolebinding
+values:
+ - ./values/values.yaml
+templates:
+ - cluster_role_binding.yaml
+chart:
+ version: 0.1.0+test
+ appVersion: 0.1.0
+release:
+ name: "fso-agent"
+ namespace: "appdynamics"
+tests:
+ - it: should pass all kinds of assertion
+ template: cluster_role_binding.yaml
+ documentIndex: 0
+ asserts:
+ - isKind:
+ of: ClusterRoleBinding
+ - isAPIVersion:
+ of: rbac.authorization.k8s.io/v1
+ - hasDocuments:
+ count: 1
+ - matchRegex:
+ path: metadata.name
+ pattern: ^.*-smartagent$
+ - notMatchRegex:
+ path: metadata.name
+ pattern: ^.*-foobar$
+ - isNull:
+ path: metadata.namespace
+ - equal:
+ path: metadata.labels
+ value:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: appdynamics-smartagent
+ app.kubernetes.io/version: 0.1.0
+ helm.sh/chart: appdynamics-smartagent-0.1.0_test
+ - isNotNull:
+ path: roleRef
+ - equal:
+ path: roleRef
+ value:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: fso-agent-appdynamics-smartagent
+ - matchRegex:
+ path: roleRef.name
+ pattern: ^.*-smartagent$
+ - notMatchRegex:
+ path: roleRef.name
+ pattern: ^.*-foobar$
+ - isNotNull:
+ path: subjects
+ - isNotEmpty:
+ path: subjects[0]
+ - isNull:
+ path: subjects[1]
+ - isNotEmpty:
+ path: subjects[0].kind
+ - isNotEmpty:
+ path: subjects[0].name
+ - isNotEmpty:
+ path: subjects[0].namespace
+ - equal:
+ path: subjects[0].kind
+ value: ServiceAccount
+ - matchRegex:
+ path: subjects[0].name
+ pattern: ^.*-agent$
+ - notMatchRegex:
+ path: subjects[0].name
+ pattern: ^.*-foobar$
+ - equal:
+ path: subjects[0].namespace
+ value: appdynamics
+ - notEqual:
+ path: subjects[0].namespace
+ value: default
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/secret_test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/secret_test.yaml
new file mode 100644
index 00000000..ed0841db
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/secret_test.yaml
@@ -0,0 +1,49 @@
+suite: test secret
+values:
+ - ./values/values.yaml
+templates:
+ - secret.yaml
+chart:
+ version: 0.1.0+test
+ appVersion: 0.1.0
+release:
+ name: "fso-agent"
+ namespace: "appdynamics"
+tests:
+ - it: should pass all kinds of assertion
+ template: secret.yaml
+ documentIndex: 0
+ asserts:
+ - isKind:
+ of: Secret
+ - isAPIVersion:
+ of: v1
+ - hasDocuments:
+ count: 1
+ - matchRegex:
+ path: metadata.name
+ pattern: ^.*-smartagent$
+ - notMatchRegex:
+ path: metadata.name
+ pattern: ^.*-foobar$
+ - equal:
+ path: metadata.namespace
+ value: appdynamics
+ - notEqual:
+ path: metadata.namespace
+ value: default
+ - equal:
+ path: metadata.labels
+ value:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: appdynamics-smartagent
+ app.kubernetes.io/version: 0.1.0
+ helm.sh/chart: appdynamics-smartagent-0.1.0_test
+ - equal:
+ path: type
+ value: Opaque
+ - equal:
+ path: stringData
+ value:
+ OAUTH_SECRET: "oauthSecret"
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/serviceaccount_test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/serviceaccount_test.yaml
new file mode 100644
index 00000000..e10c3486
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/serviceaccount_test.yaml
@@ -0,0 +1,44 @@
+suite: test serviceAccount
+values:
+ - ./values/values.yaml
+templates:
+ - serviceaccount.yaml
+chart:
+ version: 0.1.0+test
+ appVersion: 0.1.0
+release:
+ name: "fso-agent"
+ namespace: "appdynamics"
+tests:
+ - it: should pass all kinds of assertion
+ template: serviceaccount.yaml
+ documentIndex: 0
+ asserts:
+ - isKind:
+ of: ServiceAccount
+ - isAPIVersion:
+ of: v1
+ - hasDocuments:
+ count: 1
+ - equal:
+ path: metadata.name
+ value: fso-agent
+ - notEqual:
+ path: metadata.name
+ pattern: fso-test
+ - equal:
+ path: metadata.namespace
+ value: appdynamics
+ - notEqual:
+ path: metadata.namespace
+ value: default
+ - equal:
+ path: metadata.labels
+ value:
+ app.kubernetes.io/instance: fso-agent
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/name: appdynamics-smartagent
+ app.kubernetes.io/version: 0.1.0
+ helm.sh/chart: appdynamics-smartagent-0.1.0_test
+ - isNull:
+ path: annotations
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/values/values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/values/values.yaml
new file mode 100644
index 00000000..157e399b
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/tests/values/values.yaml
@@ -0,0 +1,104 @@
+global:
+ clusterId: "clusterID-test"
+ clusterName: "clusterName"
+ helmChartVersion: "1.21.0"
+
+image:
+ registry: appdynamics
+ repository: apache
+ tag: latest
+ pullPolicy: Always
+
+namespace: appdynamics
+
+clusterRole:
+ - apiGroup: [ "" ]
+ resources: [
+ configmaps,
+ secrets,
+ pods,
+ pods/logs,
+ pods/status,
+ namespaces,
+ serviceaccounts,
+ services,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+ - apiGroup: [ rbac.authorization.k8s.io ]
+ resources: [
+ rolebindings,
+ roles,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+ - apiGroup: [ rbac.authorization.k8s.io ]
+ resources: [
+ roles,
+ ]
+ verbs: [
+ bind,
+ ]
+ resourceNames: [
+ admin,
+ edit,
+ view,
+ ]
+ - apiGroup: [
+ apps,
+ extensions,
+ ]
+ resources: [
+ daemonsets,
+ daemonsets/status,
+ deployments,
+ deployments/status,
+ replicasets,
+ statefulsets,
+ statefulsets/status,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+
+serviceAccount:
+ create: true
+ annotations: {}
+ name: "fso-agent"
+
+solution:
+ endpoint: "solutionURL"
+
+oauth:
+ clientId: "oauthId"
+ clientSecret: "oauthSecret"
+ tokenUrl: "oauthURL"
+ tenantId: "tenantID"
+ scopes: "a,b,c"
+
+tls:
+ insecure: true
+
+agent:
+ name: "smartagent"
+ namespace: "agent"
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/values.yaml
new file mode 100644
index 00000000..cd228f3b
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/appdynamics-smartagent/values.yaml
@@ -0,0 +1,237 @@
+# Default values for appdynamics-smartagent.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global:
+ clusterId: ""
+ clusterName: "appdynamics"
+ helmChartVersion: "latest"
+
+image:
+ registry: appdynamics
+ repository: appdynamics-smartagent
+ pullPolicy: IfNotPresent
+ # Overrides the image tag whose default is the chart appVersion.
+ tag: "24.4.0-1959"
+
+serviceAPIExtension: "/rest/agent/service"
+
+clusterRole:
+ - apiGroup: [ "" ]
+ resources: [
+ configmaps,
+ secrets,
+ pods,
+ pods/logs,
+ pods/status,
+ namespaces,
+ serviceaccounts,
+ services,
+ endpoints,
+ events,
+ nodes,
+ nodes/proxy,
+ resourcequotas,
+ persistentvolumeclaims,
+ persistentvolumes,
+ replicationcontrollers,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+ - apiGroup: [ rbac.authorization.k8s.io ]
+ resources: [
+ clusterrolebindings,
+ clusterroles,
+ rolebindings,
+ roles,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+ - apiGroup: [ rbac.authorization.k8s.io ]
+ resources: [
+ roles,
+ ]
+ verbs: [
+ bind,
+ ]
+ resourceNames: [
+ admin,
+ edit,
+ view,
+ ]
+ - apiGroup: [
+ apps,
+ extensions,
+ ]
+ resources: [
+ daemonsets,
+ daemonsets/status,
+ deployments,
+ deployments/status,
+ replicasets,
+ statefulsets,
+ statefulsets/status,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+ - apiGroup: [ networking.k8s.io ]
+ resources: [
+ ingresses,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ ]
+ - apiGroup: [ autoscaling.k8s.io ]
+ resources: [
+ verticalpodautoscalers,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ ]
+ - apiGroup: [ autoscaling ]
+ resources: [
+ horizontalpodautoscalers,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ ]
+ - apiGroup: [ batch ]
+ resources: [
+ cronjobs,
+ jobs,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ ]
+ - apiGroup: [ cluster.appdynamics.com ]
+ resources: [
+ clustermons,
+ containermons,
+ inframons,
+ logcollectors,
+ servermons,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+ - apiGroup: [ opentelemetry.io ]
+ resources: [
+ instrumentations,
+ opentelemetrycollectors,
+ ]
+ verbs: [
+ get,
+ list,
+ watch,
+ update,
+ create,
+ delete,
+ patch,
+ ]
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+serviceAccount:
+ # Specifies whether a service account should be created
+ create: true
+ # Annotations to add to the service account
+ annotations: {}
+ # The name of the service account to use.
+ # If not set and create is true, a name is generated using the fullname template
+ name: "appd-smartagent"
+
+podAnnotations: {}
+
+podSecurityContext: {}
+ # fsGroup: 2000
+
+securityContext: {}
+
+resources:
+ limits:
+ cpu: 200m
+ memory: 256Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/arch
+ operator: In
+ values:
+ - amd64
+ - arm64
+ - key: kubernetes.io/os
+ operator: In
+ values:
+ - linux
+
+solution:
+ endpoint: ""
+
+oauth:
+ clientId: ""
+ clientSecret: ""
+ tokenUrl: ""
+ tenantId: ""
+ scopes: ""
+ clientSecretEnvVar: {}
+
+tls:
+ insecure: true
+ caFile: ""
+ certFile: ""
+ keyFile: ""
+
+agent:
+ type: "smartagent"
+ namespace: "agent"
+
+proxy:
+ httpProxy: ""
+ httpsProxy: ""
+ noProxy: ""
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/.helmignore b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/.helmignore
new file mode 100644
index 00000000..7e96254a
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/.helmignore
@@ -0,0 +1,25 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
+# Release related files
+release/
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/CONTRIBUTING.md b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/CONTRIBUTING.md
new file mode 100644
index 00000000..b84ea2a3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/CONTRIBUTING.md
@@ -0,0 +1,11 @@
+# Operator Chart Contributing Guide
+
+## Bumping Default Operator Version
+
+1. Increase the minor version of the chart by one and set the patch version to zero.
+2. Update the chart's `appVersion` to match the new operator version.
+3. In the values.yaml, update `manager.image.tag` to match the new operator release.
+4. In the values.yaml, update `manager.collectorImage.tag` to match the version of the collector managed by default by the operator.
+5. Run `make generate-examples CHARTS=opentelemetry-operator`.
+6. Run `make update-operator-crds` to update the CRDs in this chart to match the operator's.
+7. Review the [Operator release notes](https://github.com/open-telemetry/opentelemetry-operator/releases). If any changes affect the helm chart, adjust the helm chart accordingly.
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/Chart.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/Chart.yaml
new file mode 100644
index 00000000..f9a0c1e0
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/Chart.yaml
@@ -0,0 +1,13 @@
+apiVersion: v2
+appVersion: 0.89.0
+description: AppDynamics Distribution of OpenTelemetry Operator Helm chart for Kubernetes
+home: https://appdynamics.com
+icon: https://raw.githubusercontent.com/CiscoDevNet/appdynamics-charts/master/logo.png
+maintainers:
+- email: support@appdynamics.com
+ name: AppDynamics
+name: opentelemetry-operator
+sources:
+- https://github.com/open-telemetry/opentelemetry-operator
+type: application
+version: 0.43.0
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/LICENSE.txt b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/LICENSE.txt
new file mode 100644
index 00000000..f49a4e16
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/LICENSE.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/README.md b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/README.md
new file mode 100644
index 00000000..f08c839c
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/README.md
@@ -0,0 +1,273 @@
+# OpenTelemetry Operator Helm Chart
+
+The Helm chart installs [OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator) in Kubernetes cluster.
+The OpenTelemetry Operator is an implementation of a [Kubernetes Operator](https://www.openshift.com/learn/topics/operators).
+At this point, it has [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector) as the only managed component.
+
+## Prerequisites
+
+- Kubernetes 1.24+ is required for OpenTelemetry Operator installation
+- Helm 3.9+
+
+### TLS Certificate Requirement
+
+In Kubernetes, in order for the API server to communicate with the webhook component, the webhook requires a TLS
+certificate that the API server is configured to trust. There are a few different ways you can use to generate/configure the required TLS certificate.
+
+ - The easiest and default method is to install the [cert-manager](https://cert-manager.io/docs/) and set `admissionWebhooks.certManager.create` to `true`.
+ In this way, cert-manager will generate a self-signed certificate. _See [cert-manager installation](https://cert-manager.io/docs/installation/kubernetes/) for more details._
+ - You can provide your own Issuer by configuring the `admissionWebhooks.certManager.issuerRef` value. You will need
+ to specify the `kind` (Issuer or ClusterIssuer) and the `name`. Note that this method also requires the installation of cert-manager.
+ - You can use an automatically generated self-signed certificate by setting `admissionWebhooks.certManager.enabled` to `false` and `admissionWebhooks.autoGenerateCert` to `true`. Helm will create a self-signed cert and a secret for you.
+ - You can use your own generated self-signed certificate by setting both `admissionWebhooks.certManager.enabled` and `admissionWebhooks.autoGenerateCert` to `false`. You should provide the necessary values to `admissionWebhooks.cert_file`, `admissionWebhooks.key_file`, and `admissionWebhooks.ca_file`.
+ - You can sideload custom webhooks and certificate by disabling `.Values.admissionWebhooks.create` and `admissionWebhooks.certManager.enabled` while setting your custom cert secret name in `admissionWebhooks.secretName`
+ - You can disable webhooks altogether by disabling `.Values.admissionWebhooks.create` and setting env var to `ENABLE_WEBHOOKS: "false"`
+
+## Add Repository
+
+```console
+$ helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
+$ helm repo update
+```
+
+_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._
+
+## Install Chart
+
+```console
+$ helm install \
+ opentelemetry-operator open-telemetry/opentelemetry-operator
+```
+
+If you created a custom namespace, like in the TLS Certificate Requirement section above, you will need to specify the namespace with the `--namespace` helm option:
+
+```console
+$ helm install --namespace opentelemetry-operator-system \
+ opentelemetry-operator open-telemetry/opentelemetry-operator
+```
+
+If you wish for helm to create an automatically generated self-signed certificate, make sure to set the appropriate values when installing the chart:
+
+```console
+$ helm install --set admissionWebhooks.certManager.enabled=false --set admissionWebhooks.certManager.autoGenerateCert=true \
+ opentelemetry-operator open-telemetry/opentelemetry-operator
+```
+
+_See [helm install](https://helm.sh/docs/helm/helm_install/) for command documentation._
+
+## Uninstall Chart
+
+The following command uninstalls the chart whose release name is my-opentelemetry-operator.
+
+```console
+$ helm uninstall opentelemetry-operator
+```
+
+_See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command documentation._
+
+This will remove all the Kubernetes components associated with the chart and deletes the release.
+
+The OpenTelemetry Collector CRD created by this chart won't be removed by default and should be manually deleted:
+
+```console
+$ kubectl delete crd opentelemetrycollectors.opentelemetry.io
+```
+
+## Upgrade Chart
+
+```console
+$ helm upgrade my-opentelemetry-operator open-telemetry/opentelemetry-operator
+```
+
+Please note that by default, the chart will be upgraded to the latest version. If you want to upgrade to a specific version,
+use `--version` flag.
+
+With Helm v3.0, CRDs created by this chart are not updated by default and should be manually updated.
+Consult also the [Helm Documentation on CRDs](https://helm.sh/docs/chart_best_practices/custom_resource_definitions).
+
+_See [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) for command documentation._
+
+## Configuration
+
+The following command will show all the configurable options with detailed comments.
+
+```console
+$ helm show values open-telemetry/opentelemetry-operator
+```
+
+## Install OpenTelemetry Collector
+
+_See [OpenTelemetry website](https://opentelemetry.io/docs/collector/) for more details about the Collector_
+
+Once the opentelemetry-operator deployment is ready, you can deploy OpenTelemetry Collector in our Kubernetes
+cluster.
+
+The Collector can be deployed as one of four modes: Deployment, DaemonSet, StatefulSet and Sidecar. The default
+mode is Deployment. We will introduce the benefits and use cases of each mode as well as giving an example for each.
+
+### Deployment Mode
+
+If you want to get more control of the OpenTelemetry Collector and create a standalone application, Deployment would
+be your choice. With Deployment, you can relatively easily scale up the Collector to monitor more targets, roll back
+to an early version if anything unexpected happens, pause the Collector, etc. In general, you can manage your Collector
+instance just as an application.
+
+The following example configuration deploys the Collector as Deployment resource. The receiver is Jaeger receiver and
+the exporter is [debug exporter](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/debugexporter).
+
+```console
+$ kubectl apply -f - <
+It is important that the `jaegerremotesampling` extension and the `jaegerreceiver` do not use the same port.
To increase the collector version afterwards, the update must be triggered again by restarting the operator. Alternatively, the `OpenTelemetryCollector` CRD can be re-created. [otel-contrib#14707](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/14707)
+
+## 0.13.0 to 0.14.0
+
+[Allow byo webhooks and cert](https://github.com/open-telemetry/opentelemetry-helm-charts/pull/411)
+
+The ability to use admission webhooks has been moved from `admissionWebhooks.enabled` to `admissionWebhooks.create` as it now supports more use cases.
+
+In order to completely disable admission webhooks you need to explicitly set the environment variable `ENABLE_WEBHOOKS: "false"` in `.Values.manager.env` .
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/cert-manager-disable-nameoverride-values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/cert-manager-disable-nameoverride-values.yaml
new file mode 100644
index 00000000..63c2261f
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/cert-manager-disable-nameoverride-values.yaml
@@ -0,0 +1,5 @@
+nameOverride: no-cert-manager
+
+admissionWebhooks:
+ certManager:
+ enabled: false
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/cert-manager-disable-values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/cert-manager-disable-values.yaml
new file mode 100644
index 00000000..0a32bfec
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/cert-manager-disable-values.yaml
@@ -0,0 +1,3 @@
+admissionWebhooks:
+ certManager:
+ enabled: false
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/nameoverride-values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/nameoverride-values.yaml
new file mode 100644
index 00000000..0a6e63a7
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/nameoverride-values.yaml
@@ -0,0 +1 @@
+nameOverride: foobar
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/secret-name-nameoverride-values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/secret-name-nameoverride-values.yaml
new file mode 100644
index 00000000..4007e428
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/secret-name-nameoverride-values.yaml
@@ -0,0 +1,4 @@
+nameOverride: secret-name
+
+admissionWebhooks:
+ secretName: random-name
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/secret-name-values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/secret-name-values.yaml
new file mode 100644
index 00000000..f18d281e
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/ci/secret-name-values.yaml
@@ -0,0 +1,2 @@
+admissionWebhooks:
+ secretName: random-name
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetry.io_opampbridges.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetry.io_opampbridges.yaml
new file mode 100644
index 00000000..913746b3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetry.io_opampbridges.yaml
@@ -0,0 +1,2823 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.12.0
+ name: opampbridges.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: OpAMPBridge
+ listKind: OpAMPBridgeList
+ plural: opampbridges
+ singular: opampbridge
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .spec.endpoint
+ name: Endpoint
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: OpAMPBridge is the Schema for the opampbridges 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.
+ 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.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: OpAMPBridgeSpec defines the desired state of OpAMPBridge.
+ properties:
+ affinity:
+ description: If specified, indicates the pod's scheduling constraints
+ properties:
+ nodeAffinity:
+ description: Describes node affinity scheduling rules for the
+ pod.
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods to
+ nodes that satisfy the affinity expressions specified by
+ this field, but it may choose a node that violates one or
+ more of the expressions.
+ items:
+ description: An empty preferred scheduling term matches
+ all objects with implicit weight 0 (i.e. it's a no-op).
+ A null preferred scheduling term matches no objects (i.e.
+ is also a no-op).
+ properties:
+ preference:
+ description: A node selector term, associated with the
+ corresponding weight.
+ properties:
+ matchExpressions:
+ description: A list of node selector requirements
+ by node's labels.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ description: A list of node selector requirements
+ by node's fields.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ description: Weight associated with matching the corresponding
+ nodeSelectorTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the affinity requirements specified by this
+ field are not met at scheduling time, the pod will not be
+ scheduled onto the node.
+ properties:
+ nodeSelectorTerms:
+ description: Required. A list of node selector terms.
+ The terms are ORed.
+ items:
+ description: A null or empty node selector term matches
+ no objects. The requirements of them are ANDed. The
+ TopologySelectorTerm type implements a subset of the
+ NodeSelectorTerm.
+ properties:
+ matchExpressions:
+ description: A list of node selector requirements
+ by node's labels.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ description: A list of node selector requirements
+ by node's fields.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ description: Describes pod affinity scheduling rules (e.g. co-locate
+ this pod in the same node, zone, etc. as some other pod(s)).
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods to
+ nodes that satisfy the affinity expressions specified by
+ this field, but it may choose a node that violates one or
+ more of the expressions.
+ items:
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred node(s)
+ properties:
+ podAffinityTerm:
+ description: Required. A pod affinity term, associated
+ with the corresponding weight.
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by this
+ field and the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to. The
+ term is applied to the union of the namespaces
+ listed in this field and the ones selected by
+ namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods
+ matching the labelSelector in the specified namespaces,
+ where co-located is defined as running on a node
+ whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ description: weight associated with matching the corresponding
+ podAffinityTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the affinity requirements specified by this
+ field are not met at scheduling time, the pod will not be
+ scheduled onto the node.
+ items:
+ description: Defines a set of pods (namely those matching
+ the labelSelector relative to the given namespace(s))
+ that this pod should be co-located (affinity) or not co-located
+ (anti-affinity) with, where co-locate
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied to the
+ union of the namespaces selected by this field and
+ the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list of namespace
+ names that the term applies to. The term is applied
+ to the union of the namespaces listed in this field
+ and the ones selected by namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods matching
+ the labelSelector in the specified namespaces, where
+ co-located is defined as running on a node whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ podAntiAffinity:
+ description: Describes pod anti-affinity scheduling rules (e.g.
+ avoid putting this pod in the same node, zone, etc. as some
+ other pod(s)).
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods to
+ nodes that satisfy the anti-affinity expressions specified
+ by this field, but it may choose a node that violates one
+ or more of the expressions.
+ items:
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred node(s)
+ properties:
+ podAffinityTerm:
+ description: Required. A pod affinity term, associated
+ with the corresponding weight.
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by this
+ field and the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to. The
+ term is applied to the union of the namespaces
+ listed in this field and the ones selected by
+ namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods
+ matching the labelSelector in the specified namespaces,
+ where co-located is defined as running on a node
+ whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ description: weight associated with matching the corresponding
+ podAffinityTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the anti-affinity requirements specified by
+ this field are not met at scheduling time, the pod will
+ not be scheduled onto the node.
+ items:
+ description: Defines a set of pods (namely those matching
+ the labelSelector relative to the given namespace(s))
+ that this pod should be co-located (affinity) or not co-located
+ (anti-affinity) with, where co-locate
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied to the
+ union of the namespaces selected by this field and
+ the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list of namespace
+ names that the term applies to. The term is applied
+ to the union of the namespaces listed in this field
+ and the ones selected by namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods matching
+ the labelSelector in the specified namespaces, where
+ co-located is defined as running on a node whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ type: object
+ capabilities:
+ additionalProperties:
+ type: boolean
+ description: Capabilities supported by the OpAMP Bridge
+ type: object
+ componentsAllowed:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ description: ComponentsAllowed is a list of allowed OpenTelemetry
+ components for each pipeline type (receiver, processor, etc.)
+ type: object
+ endpoint:
+ description: OpAMP backend Server endpoint
+ type: string
+ env:
+ description: ENV vars to set on the OpAMPBridge 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.
+ 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['''']`, `metadata.annotations['''']`,
+ spec.nodeName, spec.serviceAccountName, status.hostIP,
+ status.'
+ 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.'
+ 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
+ envFrom:
+ description: List of sources to populate environment variables on
+ the OpAMPBridge Pods.
+ items:
+ description: EnvFromSource represents the source of a set of ConfigMaps
+ properties:
+ configMapRef:
+ description: The ConfigMap to select from
+ properties:
+ 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 must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ description: An optional identifier to prepend to each key in
+ the ConfigMap. Must be a C_IDENTIFIER.
+ type: string
+ secretRef:
+ description: The Secret to select from
+ properties:
+ 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 must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ hostNetwork:
+ description: HostNetwork indicates if the pod should run in the host
+ networking namespace.
+ type: boolean
+ image:
+ description: Image indicates the container image to use for the OpAMPBridge.
+ type: string
+ imagePullPolicy:
+ description: ImagePullPolicy indicates the pull policy to be used
+ for retrieving the container image (Always, Never, IfNotPresent)
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description: NodeSelector to schedule OpAMPBridge pods.
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ description: PodAnnotations is the set of annotations that will be
+ attached to OpAMPBridge pods.
+ type: object
+ podSecurityContext:
+ description: PodSecurityContext will be set as the pod security context.
+ properties:
+ fsGroup:
+ description: "A special supplemental group that applies to all
+ containers in a pod. Some volume types allow the Kubelet to
+ change the ownership of that volume to be owned by the pod:
+ \n 1."
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ description: fsGroupChangePolicy defines behavior of changing
+ ownership and permission of the volume before being exposed
+ inside Pod.
+ type: string
+ runAsGroup:
+ description: The GID to run the entrypoint of the container process.
+ Uses runtime default if unset. May also be set in SecurityContext.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: Indicates that the container must run as a non-root
+ user.
+ type: boolean
+ runAsUser:
+ description: The UID to run the entrypoint of the container process.
+ Defaults to user specified in image metadata if unspecified.
+ May also be set in SecurityContext.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: The SELinux context to be applied to all containers.
+ If unspecified, the container runtime will allocate a random
+ SELinux context for each container. May also be set in SecurityContext.
+ properties:
+ level:
+ description: Level is SELinux level label that applies to
+ the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies to
+ the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies to
+ the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies to
+ the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: The seccomp options to use by the containers in this
+ pod. Note that this field cannot be set when spec.os.name is
+ windows.
+ properties:
+ localhostProfile:
+ description: localhostProfile indicates a profile defined
+ in a file on the node should be used. The profile must be
+ preconfigured on the node to work.
+ type: string
+ type:
+ description: "type indicates which kind of seccomp profile
+ will be applied. Valid options are: \n Localhost - a profile
+ defined in a file on the node should be used."
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ description: A list of groups applied to the first process run
+ in each container, in addition to the container's primary GID,
+ the fsGroup (if specified), and group memberships defined in
+ the container image for th
+ items:
+ format: int64
+ type: integer
+ type: array
+ sysctls:
+ description: Sysctls hold a list of namespaced sysctls used for
+ the pod. Pods with unsupported sysctls (by the container runtime)
+ might fail to launch. Note that this field cannot be set when
+ spec.os.
+ items:
+ description: Sysctl defines a kernel parameter to be set
+ properties:
+ name:
+ description: Name of a property to set
+ type: string
+ value:
+ description: Value of a property to set
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ windowsOptions:
+ description: The Windows specific settings applied to all containers.
+ If unspecified, the options within a container's SecurityContext
+ will be used.
+ properties:
+ gmsaCredentialSpec:
+ description: GMSACredentialSpec is where the GMSA admission
+ webhook (https://github.com/kubernetes-sigs/windows-gmsa)
+ inlines the contents of the GMSA credential spec named by
+ the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the GMSA
+ credential spec to use.
+ type: string
+ hostProcess:
+ description: HostProcess determines if a container should
+ be run as a 'Host Process' container.
+ type: boolean
+ runAsUserName:
+ description: The UserName in Windows to run the entrypoint
+ of the container process. Defaults to the user specified
+ in image metadata if unspecified. May also be set in PodSecurityContext.
+ type: string
+ type: object
+ type: object
+ ports:
+ description: Ports allows a set of ports to be exposed by the underlying
+ v1.Service.
+ items:
+ description: ServicePort contains information on service's port.
+ properties:
+ appProtocol:
+ description: The application protocol for this port. This is
+ used as a hint for implementations to offer richer behavior
+ for protocols that they understand. This field follows standard
+ Kubernetes label syntax.
+ type: string
+ name:
+ description: The name of this port within the service. This
+ must be a DNS_LABEL. All ports within a ServiceSpec must have
+ unique names.
+ type: string
+ nodePort:
+ description: The port on each node on which this service is
+ exposed when type is NodePort or LoadBalancer. Usually assigned
+ by the system.
+ format: int32
+ type: integer
+ port:
+ description: The port that will be exposed by this service.
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ description: The IP protocol for this port. Supports "TCP",
+ "UDP", and "SCTP". Default is TCP.
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on the pods
+ targeted by the service. Number must be in the range 1 to
+ 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ description: If specified, indicates the pod's priority. If not specified,
+ the pod priority will be default or zero if there is no default.
+ type: string
+ replicas:
+ description: Replicas is the number of pod instances for the OpAMPBridge.
+ format: int32
+ maximum: 1
+ type: integer
+ resources:
+ description: Resources to set on the OpAMPBridge 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."
+ 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.
+ type: object
+ type: object
+ securityContext:
+ description: SecurityContext will be set as the container security
+ context.
+ properties:
+ allowPrivilegeEscalation:
+ description: AllowPrivilegeEscalation controls whether a process
+ can gain more privileges than its parent process. This bool
+ directly controls if the no_new_privs flag will be set on the
+ container process.
+ type: boolean
+ capabilities:
+ description: The capabilities to add/drop when running containers.
+ Defaults to the default set of capabilities granted by the container
+ runtime. Note that this field cannot be set when spec.os.name
+ is windows.
+ properties:
+ add:
+ description: Added capabilities
+ items:
+ description: Capability represent POSIX capabilities type
+ type: string
+ type: array
+ drop:
+ description: Removed capabilities
+ items:
+ description: Capability represent POSIX capabilities type
+ type: string
+ type: array
+ type: object
+ privileged:
+ description: Run container in privileged mode. Processes in privileged
+ containers are essentially equivalent to root on the host. Defaults
+ to false. Note that this field cannot be set when spec.os.name
+ is windows.
+ type: boolean
+ procMount:
+ description: procMount denotes the type of proc mount to use for
+ the containers. The default is DefaultProcMount which uses the
+ container runtime defaults for readonly paths and masked paths.
+ type: string
+ readOnlyRootFilesystem:
+ description: Whether this container has a read-only root filesystem.
+ Default is false. Note that this field cannot be set when spec.os.name
+ is windows.
+ type: boolean
+ runAsGroup:
+ description: The GID to run the entrypoint of the container process.
+ Uses runtime default if unset. May also be set in PodSecurityContext.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: Indicates that the container must run as a non-root
+ user.
+ type: boolean
+ runAsUser:
+ description: The UID to run the entrypoint of the container process.
+ Defaults to user specified in image metadata if unspecified.
+ May also be set in PodSecurityContext.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: The SELinux context to be applied to the container.
+ If unspecified, the container runtime will allocate a random
+ SELinux context for each container. May also be set in PodSecurityContext.
+ properties:
+ level:
+ description: Level is SELinux level label that applies to
+ the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies to
+ the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies to
+ the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies to
+ the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: The seccomp options to use by this container. If
+ seccomp options are provided at both the pod & container level,
+ the container options override the pod options.
+ properties:
+ localhostProfile:
+ description: localhostProfile indicates a profile defined
+ in a file on the node should be used. The profile must be
+ preconfigured on the node to work.
+ type: string
+ type:
+ description: "type indicates which kind of seccomp profile
+ will be applied. Valid options are: \n Localhost - a profile
+ defined in a file on the node should be used."
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ description: The Windows specific settings applied to all containers.
+ If unspecified, the options from the PodSecurityContext will
+ be used.
+ properties:
+ gmsaCredentialSpec:
+ description: GMSACredentialSpec is where the GMSA admission
+ webhook (https://github.com/kubernetes-sigs/windows-gmsa)
+ inlines the contents of the GMSA credential spec named by
+ the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the GMSA
+ credential spec to use.
+ type: string
+ hostProcess:
+ description: HostProcess determines if a container should
+ be run as a 'Host Process' container.
+ type: boolean
+ runAsUserName:
+ description: The UserName in Windows to run the entrypoint
+ of the container process. Defaults to the user specified
+ in image metadata if unspecified. May also be set in PodSecurityContext.
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ description: ServiceAccount indicates the name of an existing service
+ account to use with this instance. When set, the operator will not
+ automatically create a ServiceAccount for the OpAMPBridge.
+ type: string
+ tolerations:
+ description: Toleration to schedule OpAMPBridge pods.
+ items:
+ description: The pod this Toleration is attached to tolerates any
+ taint that matches the triple using the matching
+ operator .
+ properties:
+ effect:
+ description: Effect indicates the taint effect to match. Empty
+ means match all taint effects. When specified, allowed values
+ are NoSchedule, PreferNoSchedule and NoExecute.
+ type: string
+ key:
+ description: Key is the taint key that the toleration applies
+ to. Empty means match all taint keys. If the key is empty,
+ operator must be Exists; this combination means to match all
+ values and all keys.
+ type: string
+ operator:
+ description: Operator represents a key's relationship to the
+ value. Valid operators are Exists and Equal. Defaults to Equal.
+ 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.
+ 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: TopologySpreadConstraints embedded kubernetes pod configuration
+ option, controls how pods are spread across your cluster among failure-domains
+ such as regions, zones, nodes, and other user-defined top
+ 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.
+ 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.
+ 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.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ description: MaxSkew describes the degree to which pods may
+ be unevenly distributed.
+ format: int32
+ type: integer
+ minDomains:
+ description: MinDomains indicates a minimum number of eligible
+ domains.
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ description: NodeAffinityPolicy indicates how we will treat
+ Pod's nodeAffinity/nodeSelector when calculating pod topology
+ spread skew.
+ type: string
+ nodeTaintsPolicy:
+ description: NodeTaintsPolicy indicates how we will treat node
+ taints when calculating pod topology spread skew.
+ 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.
+ 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.
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ upgradeStrategy:
+ description: UpgradeStrategy represents how the operator will handle
+ upgrades to the CR when a newer version of the operator is deployed
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeMounts:
+ description: VolumeMounts represents the mount points to use in the
+ underlying OpAMPBridge deployment(s)
+ items:
+ description: VolumeMount describes a mounting of a Volume within
+ a container.
+ properties:
+ mountPath:
+ description: Path within the container at which the volume should
+ be mounted. Must not contain ':'.
+ type: string
+ mountPropagation:
+ description: mountPropagation determines how mounts are propagated
+ from the host to container and the other way around. When
+ not set, MountPropagationNone is used. This field is beta
+ in 1.10.
+ type: string
+ name:
+ description: This must match the Name of a Volume.
+ type: string
+ readOnly:
+ description: Mounted read-only if true, read-write otherwise
+ (false or unspecified). Defaults to false.
+ type: boolean
+ subPath:
+ description: Path within the volume from which the container's
+ volume should be mounted. Defaults to "" (volume's root).
+ type: string
+ subPathExpr:
+ description: Expanded path within the volume from which the
+ container's volume should be mounted.
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ description: Volumes represents which volumes to use in the underlying
+ OpAMPBridge deployment(s).
+ items:
+ description: Volume represents a named volume in a pod that may
+ be accessed by any container in the pod.
+ properties:
+ awsElasticBlockStore:
+ description: 'awsElasticBlockStore represents an AWS Disk resource
+ that is attached to a kubelet''s host machine and then exposed
+ to the pod. More info: https://kubernetes.'
+ properties:
+ fsType:
+ description: 'fsType is the filesystem type of the volume
+ that you want to mount. Tip: Ensure that the filesystem
+ type is supported by the host operating system. Examples:
+ "ext4", "xfs", "ntfs".'
+ type: string
+ partition:
+ description: 'partition is the partition in the volume that
+ you want to mount. If omitted, the default is to mount
+ by volume name. Examples: For volume /dev/sda1, you specify
+ the partition as "1".'
+ format: int32
+ type: integer
+ readOnly:
+ description: 'readOnly value true will force the readOnly
+ setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
+ type: boolean
+ volumeID:
+ description: 'volumeID is unique ID of the persistent disk
+ resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ description: azureDisk represents an Azure Data Disk mount on
+ the host and bind mount to the pod.
+ properties:
+ cachingMode:
+ description: 'cachingMode is the Host Caching mode: None,
+ Read Only, Read Write.'
+ type: string
+ diskName:
+ description: diskName is the Name of the data disk in the
+ blob storage
+ type: string
+ diskURI:
+ description: diskURI is the URI of data disk in the blob
+ storage
+ type: string
+ fsType:
+ description: fsType is Filesystem type to mount. Must be
+ a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ kind:
+ description: 'kind expected values are Shared: multiple
+ blob disks per storage account Dedicated: single blob
+ disk per storage account Managed: azure managed data
+ disk (only in managed availability set).'
+ type: string
+ readOnly:
+ description: readOnly Defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ description: azureFile represents an Azure File Service mount
+ on the host and bind mount to the pod.
+ properties:
+ readOnly:
+ description: readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ secretName:
+ description: secretName is the name of secret that contains
+ Azure Storage Account Name and Key
+ type: string
+ shareName:
+ description: shareName is the azure share Name
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ description: cephFS represents a Ceph FS mount on the host that
+ shares a pod's lifetime
+ properties:
+ monitors:
+ description: 'monitors is Required: Monitors is a collection
+ of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ items:
+ type: string
+ type: array
+ path:
+ description: 'path is Optional: Used as the mounted root,
+ rather than the full Ceph tree, default is /'
+ type: string
+ readOnly:
+ description: 'readOnly is Optional: Defaults to false (read/write).
+ ReadOnly here will force the ReadOnly setting in VolumeMounts.
+ More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ type: boolean
+ secretFile:
+ description: 'secretFile is Optional: SecretFile is the
+ path to key ring for User, default is /etc/ceph/user.secret
+ More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ type: string
+ secretRef:
+ description: 'secretRef is Optional: SecretRef is reference
+ to the authentication secret for User, default is empty.
+ More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ description: 'user is optional: User is the rados user name,
+ default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ description: 'cinder represents a cinder volume attached and
+ mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
+ properties:
+ fsType:
+ description: 'fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Examples: "ext4", "xfs", "ntfs". Implicitly inferred to
+ be "ext4" if unspecified.'
+ type: string
+ readOnly:
+ description: 'readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
+ type: boolean
+ secretRef:
+ description: 'secretRef is optional: points to a secret
+ object containing parameters used to connect to OpenStack.'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ description: 'volumeID used to identify the volume in cinder.
+ More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ description: configMap represents a configMap that should populate
+ this volume
+ properties:
+ defaultMode:
+ description: 'defaultMode is optional: mode bits used to
+ set permissions on created files by default. Must be an
+ octal value between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ items:
+ description: items if unspecified, each key-value pair in
+ the Data field of the referenced ConfigMap will be projected
+ into the volume as a file whose name is the key and content
+ is the value.
+ items:
+ description: Maps a string key to a path within a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits used to
+ set permissions on this file. Must be an octal value
+ between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of the file
+ to map the key to. May not be an absolute path.
+ May not contain the path element '..'. May not start
+ with the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ 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: optional specify whether the ConfigMap or its
+ keys must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ description: csi (Container Storage Interface) represents ephemeral
+ storage that is handled by certain external CSI drivers (Beta
+ feature).
+ properties:
+ driver:
+ description: driver is the name of the CSI driver that handles
+ this volume. Consult with your admin for the correct name
+ as registered in the cluster.
+ type: string
+ fsType:
+ description: fsType to mount. Ex. "ext4", "xfs", "ntfs".
+ If not provided, the empty value is passed to the associated
+ CSI driver which will determine the default filesystem
+ to apply.
+ type: string
+ nodePublishSecretRef:
+ description: nodePublishSecretRef is a reference to the
+ secret object containing sensitive information to pass
+ to the CSI driver to complete the CSI NodePublishVolume
+ and NodeUnpublishVolume calls.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ description: readOnly specifies a read-only configuration
+ for the volume. Defaults to false (read/write).
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ description: volumeAttributes stores driver-specific properties
+ that are passed to the CSI driver. Consult your driver's
+ documentation for supported values.
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ description: downwardAPI represents downward API about the pod
+ that should populate this volume
+ properties:
+ defaultMode:
+ description: 'Optional: mode bits to use on created files
+ by default. Must be a Optional: mode bits used to set
+ permissions on created files by default.'
+ format: int32
+ type: integer
+ items:
+ description: Items is a list of downward API volume file
+ items:
+ description: DownwardAPIVolumeFile represents information
+ to create the file containing the pod field
+ properties:
+ fieldRef:
+ description: 'Required: Selects a field of the pod:
+ only annotations, labels, name and namespace are
+ supported.'
+ 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
+ mode:
+ description: 'Optional: mode bits used to set permissions
+ on this file, must be an octal value between 0000
+ and 0777 or a decimal value between 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: 'Required: Path is the relative path
+ name of the file to be created. Must not be absolute
+ or contain the ''..'' path. Must be utf-8 encoded.
+ The first item of the relative path must not start
+ with ''..'''
+ type: string
+ resourceFieldRef:
+ description: 'Selects a resource of the container:
+ only resources limits and requests (limits.cpu,
+ limits.memory, requests.cpu and requests.memory)
+ 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
+ required:
+ - path
+ type: object
+ type: array
+ type: object
+ emptyDir:
+ description: 'emptyDir represents a temporary directory that
+ shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
+ properties:
+ medium:
+ description: medium represents what type of storage medium
+ should back this directory. The default is "" which means
+ to use the node's default medium. Must be an empty string
+ (default) or Memory.
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ description: sizeLimit is the total amount of local storage
+ required for this EmptyDir volume. The size limit is also
+ applicable for memory medium.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ description: ephemeral represents a volume that is handled by
+ a cluster storage driver.
+ properties:
+ volumeClaimTemplate:
+ description: Will be used to create a stand-alone PVC to
+ provision the volume. The pod in which this EphemeralVolumeSource
+ is embedded will be the owner of the PVC, i.e.
+ properties:
+ metadata:
+ description: May contain labels and annotations that
+ will be copied into the PVC when creating it. No other
+ fields are allowed and will be rejected during validation.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ description: The specification for the PersistentVolumeClaim.
+ The entire content is copied unchanged into the PVC
+ that gets created from this template.
+ properties:
+ accessModes:
+ description: 'accessModes contains the desired access
+ modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
+ items:
+ type: string
+ type: array
+ dataSource:
+ description: 'dataSource field can be used to specify
+ either: * An existing VolumeSnapshot object (snapshot.storage.k8s.'
+ properties:
+ apiGroup:
+ description: APIGroup is the group for the resource
+ being referenced. If APIGroup is not specified,
+ the specified Kind must be in the core API
+ group. For any other third-party types, APIGroup
+ is required.
+ type: string
+ kind:
+ description: Kind is the type of resource being
+ referenced
+ type: string
+ name:
+ description: Name is the name of resource being
+ referenced
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ description: dataSourceRef specifies the object
+ from which to populate the volume with data, if
+ a non-empty volume is desired.
+ properties:
+ apiGroup:
+ description: APIGroup is the group for the resource
+ being referenced. If APIGroup is not specified,
+ the specified Kind must be in the core API
+ group. For any other third-party types, APIGroup
+ is required.
+ type: string
+ kind:
+ description: Kind is the type of resource being
+ referenced
+ type: string
+ name:
+ description: Name is the name of resource being
+ referenced
+ type: string
+ namespace:
+ description: Namespace is the namespace of resource
+ being referenced Note that when a namespace
+ is specified, a gateway.networking.k8s.
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ description: resources represents the minimum resources
+ the volume should have.
+ 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."
+ 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.
+ type: object
+ type: object
+ selector:
+ description: selector is a label query over volumes
+ to consider for binding.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ description: 'storageClassName is the name of the
+ StorageClass required by the claim. More info:
+ https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
+ type: string
+ volumeMode:
+ description: volumeMode defines what type of volume
+ is required by the claim. Value of Filesystem
+ is implied when not included in claim spec.
+ type: string
+ volumeName:
+ description: volumeName is the binding reference
+ to the PersistentVolume backing this claim.
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ description: fc represents a Fibre Channel resource that is
+ attached to a kubelet's host machine and then exposed to the
+ pod.
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ lun:
+ description: 'lun is Optional: FC target lun number'
+ format: int32
+ type: integer
+ readOnly:
+ description: 'readOnly is Optional: Defaults to false (read/write).
+ ReadOnly here will force the ReadOnly setting in VolumeMounts.'
+ type: boolean
+ targetWWNs:
+ description: 'targetWWNs is Optional: FC target worldwide
+ names (WWNs)'
+ items:
+ type: string
+ type: array
+ wwids:
+ description: 'wwids Optional: FC volume world wide identifiers
+ (wwids) Either wwids or combination of targetWWNs and
+ lun must be set, but not both simultaneously.'
+ items:
+ type: string
+ type: array
+ type: object
+ flexVolume:
+ description: flexVolume represents a generic volume resource
+ that is provisioned/attached using an exec based plugin.
+ properties:
+ driver:
+ description: driver is the name of the driver to use for
+ this volume.
+ type: string
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". The default filesystem depends
+ on FlexVolume script.
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ description: 'options is Optional: this field holds extra
+ command options if any.'
+ type: object
+ readOnly:
+ description: 'readOnly is Optional: defaults to false (read/write).
+ ReadOnly here will force the ReadOnly setting in VolumeMounts.'
+ type: boolean
+ secretRef:
+ description: 'secretRef is Optional: secretRef is reference
+ to the secret object containing sensitive information
+ to pass to the plugin scripts. This may be empty if no
+ secret object is specified.'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ description: flocker represents a Flocker volume attached to
+ a kubelet's host machine. This depends on the Flocker control
+ service being running
+ properties:
+ datasetName:
+ description: datasetName is Name of the dataset stored as
+ metadata -> name on the dataset for Flocker should be
+ considered as deprecated
+ type: string
+ datasetUUID:
+ description: datasetUUID is the UUID of the dataset. This
+ is unique identifier of a Flocker dataset
+ type: string
+ type: object
+ gcePersistentDisk:
+ description: 'gcePersistentDisk represents a GCE Disk resource
+ that is attached to a kubelet''s host machine and then exposed
+ to the pod. More info: https://kubernetes.'
+ properties:
+ fsType:
+ description: 'fsType is filesystem type of the volume that
+ you want to mount. Tip: Ensure that the filesystem type
+ is supported by the host operating system. Examples: "ext4",
+ "xfs", "ntfs".'
+ type: string
+ partition:
+ description: 'partition is the partition in the volume that
+ you want to mount. If omitted, the default is to mount
+ by volume name. Examples: For volume /dev/sda1, you specify
+ the partition as "1".'
+ format: int32
+ type: integer
+ pdName:
+ description: 'pdName is unique name of the PD resource in
+ GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the ReadOnly setting
+ in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ description: 'gitRepo represents a git repository at a particular
+ revision. DEPRECATED: GitRepo is deprecated.'
+ properties:
+ directory:
+ description: directory is the target directory name. Must
+ not contain or start with '..'. If '.' is supplied, the
+ volume directory will be the git repository.
+ type: string
+ repository:
+ description: repository is the URL
+ type: string
+ revision:
+ description: revision is the commit hash for the specified
+ revision.
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ description: 'glusterfs represents a Glusterfs mount on the
+ host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
+ properties:
+ endpoints:
+ description: 'endpoints is the endpoint name that details
+ Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
+ type: string
+ path:
+ description: 'path is the Glusterfs volume path. More info:
+ https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the Glusterfs volume
+ to be mounted with read-only permissions. Defaults to
+ false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ description: hostPath represents a pre-existing file or directory
+ on the host machine that is directly exposed to the container.
+ properties:
+ path:
+ description: 'path of the directory on the host. If the
+ path is a symlink, it will follow the link to the real
+ path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
+ type: string
+ type:
+ description: 'type for HostPath Volume Defaults to "" More
+ info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
+ type: string
+ required:
+ - path
+ type: object
+ iscsi:
+ description: 'iscsi represents an ISCSI Disk resource that is
+ attached to a kubelet''s host machine and then exposed to
+ the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
+ properties:
+ chapAuthDiscovery:
+ description: chapAuthDiscovery defines whether support iSCSI
+ Discovery CHAP authentication
+ type: boolean
+ chapAuthSession:
+ description: chapAuthSession defines whether support iSCSI
+ Session CHAP authentication
+ type: boolean
+ fsType:
+ description: 'fsType is the filesystem type of the volume
+ that you want to mount. Tip: Ensure that the filesystem
+ type is supported by the host operating system. Examples:
+ "ext4", "xfs", "ntfs".'
+ type: string
+ initiatorName:
+ description: initiatorName is the custom iSCSI Initiator
+ Name.
+ type: string
+ iqn:
+ description: iqn is the target iSCSI Qualified Name.
+ type: string
+ iscsiInterface:
+ description: iscsiInterface is the interface Name that uses
+ an iSCSI transport. Defaults to 'default' (tcp).
+ type: string
+ lun:
+ description: lun represents iSCSI Target Lun number.
+ format: int32
+ type: integer
+ portals:
+ description: portals is the iSCSI Target Portal List. The
+ portal is either an IP or ip_addr:port if the port is
+ other than default (typically TCP ports 860 and 3260).
+ items:
+ type: string
+ type: array
+ readOnly:
+ description: readOnly here will force the ReadOnly setting
+ in VolumeMounts. Defaults to false.
+ type: boolean
+ secretRef:
+ description: secretRef is the CHAP Secret for iSCSI target
+ and initiator authentication
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ description: targetPortal is iSCSI Target Portal. The Portal
+ is either an IP or ip_addr:port if the port is other than
+ default (typically TCP ports 860 and 3260).
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ description: 'name of the volume. Must be a DNS_LABEL and unique
+ within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
+ type: string
+ nfs:
+ description: 'nfs represents an NFS mount on the host that shares
+ a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ properties:
+ path:
+ description: 'path that is exported by the NFS server. More
+ info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the NFS export to
+ be mounted with read-only permissions. Defaults to false.
+ More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ type: boolean
+ server:
+ description: 'server is the hostname or IP address of the
+ NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ description: 'persistentVolumeClaimVolumeSource represents a
+ reference to a PersistentVolumeClaim in the same namespace.
+ More info: https://kubernetes.'
+ properties:
+ claimName:
+ description: 'claimName is the name of a PersistentVolumeClaim
+ in the same namespace as the pod using this volume. More
+ info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
+ type: string
+ readOnly:
+ description: readOnly Will force the ReadOnly setting in
+ VolumeMounts. Default false.
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ description: photonPersistentDisk represents a PhotonController
+ persistent disk attached and mounted on kubelets host machine
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ pdID:
+ description: pdID is the ID that identifies Photon Controller
+ persistent disk
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ description: portworxVolume represents a portworx volume attached
+ and mounted on kubelets host machine
+ properties:
+ fsType:
+ description: fSType represents the filesystem type to mount
+ Must be a filesystem type supported by the host operating
+ system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ readOnly:
+ description: readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ volumeID:
+ description: volumeID uniquely identifies a Portworx volume
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ description: projected items for all in one resources secrets,
+ configmaps, and downward API
+ properties:
+ defaultMode:
+ description: defaultMode are the mode bits used to set permissions
+ on created files by default. Must be an octal value between
+ 0000 and 0777 or a decimal value between 0 and 511.
+ format: int32
+ type: integer
+ sources:
+ description: sources is the list of volume projections
+ items:
+ description: Projection that may be projected along with
+ other supported volume types
+ properties:
+ configMap:
+ description: configMap information about the configMap
+ data to project
+ properties:
+ items:
+ description: items if unspecified, each key-value
+ pair in the Data field of the referenced ConfigMap
+ will be projected into the volume as a file
+ whose name is the key and content is the value.
+ items:
+ description: Maps a string key to a path within
+ a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits
+ used to set permissions on this file.
+ Must be an octal value between 0000 and
+ 0777 or a decimal value between 0 and
+ 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of
+ the file to map the key to. May not be
+ an absolute path. May not contain the
+ path element '..'. May not start with
+ the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ 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: optional specify whether the ConfigMap
+ or its keys must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ description: downwardAPI information about the downwardAPI
+ data to project
+ properties:
+ items:
+ description: Items is a list of DownwardAPIVolume
+ file
+ items:
+ description: DownwardAPIVolumeFile represents
+ information to create the file containing
+ the pod field
+ properties:
+ fieldRef:
+ description: 'Required: Selects a field
+ of the pod: only annotations, labels,
+ name and namespace are supported.'
+ 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
+ mode:
+ description: 'Optional: mode bits used to
+ set permissions on this file, must be
+ an octal value between 0000 and 0777 or
+ a decimal value between 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: 'Required: Path is the relative
+ path name of the file to be created. Must
+ not be absolute or contain the ''..''
+ path. Must be utf-8 encoded. The first
+ item of the relative path must not start
+ with ''..'''
+ type: string
+ resourceFieldRef:
+ description: 'Selects a resource of the
+ container: only resources limits and requests
+ (limits.cpu, limits.memory, requests.cpu
+ and requests.memory) 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
+ required:
+ - path
+ type: object
+ type: array
+ type: object
+ secret:
+ description: secret information about the secret data
+ to project
+ properties:
+ items:
+ description: items if unspecified, each key-value
+ pair in the Data field of the referenced Secret
+ will be projected into the volume as a file
+ whose name is the key and content is the value.
+ items:
+ description: Maps a string key to a path within
+ a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits
+ used to set permissions on this file.
+ Must be an octal value between 0000 and
+ 0777 or a decimal value between 0 and
+ 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of
+ the file to map the key to. May not be
+ an absolute path. May not contain the
+ path element '..'. May not start with
+ the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ 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: optional field specify whether the
+ Secret or its key must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ description: serviceAccountToken is information about
+ the serviceAccountToken data to project
+ properties:
+ audience:
+ description: audience is the intended audience
+ of the token. A recipient of a token must identify
+ itself with an identifier specified in the audience
+ of the token, and otherwise should reject the
+ token.
+ type: string
+ expirationSeconds:
+ description: expirationSeconds is the requested
+ duration of validity of the service account
+ token. As the token approaches expiration, the
+ kubelet volume plugin will proactively rotate
+ the service account token.
+ format: int64
+ type: integer
+ path:
+ description: path is the path relative to the
+ mount point of the file to project the token
+ into.
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ type: object
+ quobyte:
+ description: quobyte represents a Quobyte mount on the host
+ that shares a pod's lifetime
+ properties:
+ group:
+ description: group to map volume access to Default is no
+ group
+ type: string
+ readOnly:
+ description: readOnly here will force the Quobyte volume
+ to be mounted with read-only permissions. Defaults to
+ false.
+ type: boolean
+ registry:
+ description: registry represents a single or multiple Quobyte
+ Registry services specified as a string as host:port pair
+ (multiple entries are separated with commas) which acts
+ as the central registry for volumes
+ type: string
+ tenant:
+ description: tenant owning the given Quobyte volume in the
+ Backend Used with dynamically provisioned Quobyte volumes,
+ value is set by the plugin
+ type: string
+ user:
+ description: user to map volume access to Defaults to serivceaccount
+ user
+ type: string
+ volume:
+ description: volume is a string that references an already
+ created Quobyte volume by name.
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ description: 'rbd represents a Rados Block Device mount on the
+ host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
+ properties:
+ fsType:
+ description: 'fsType is the filesystem type of the volume
+ that you want to mount. Tip: Ensure that the filesystem
+ type is supported by the host operating system. Examples:
+ "ext4", "xfs", "ntfs".'
+ type: string
+ image:
+ description: 'image is the rados image name. More info:
+ https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ keyring:
+ description: 'keyring is the path to key ring for RBDUser.
+ Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ monitors:
+ description: 'monitors is a collection of Ceph monitors.
+ More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ items:
+ type: string
+ type: array
+ pool:
+ description: 'pool is the rados pool name. Default is rbd.
+ More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the ReadOnly setting
+ in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: boolean
+ secretRef:
+ description: 'secretRef is name of the authentication secret
+ for RBDUser. If provided overrides keyring. Default is
+ nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ description: 'user is the rados user name. Default is admin.
+ More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ description: scaleIO represents a ScaleIO persistent volume
+ attached and mounted on Kubernetes nodes.
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Default is "xfs".
+ type: string
+ gateway:
+ description: gateway is the host address of the ScaleIO
+ API Gateway.
+ type: string
+ protectionDomain:
+ description: protectionDomain is the name of the ScaleIO
+ Protection Domain for the configured storage.
+ type: string
+ readOnly:
+ description: readOnly Defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ secretRef:
+ description: secretRef references to the secret for ScaleIO
+ user and other sensitive information. If this is not provided,
+ Login operation will fail.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ description: sslEnabled Flag enable/disable SSL communication
+ with Gateway, default false
+ type: boolean
+ storageMode:
+ description: storageMode indicates whether the storage for
+ a volume should be ThickProvisioned or ThinProvisioned.
+ Default is ThinProvisioned.
+ type: string
+ storagePool:
+ description: storagePool is the ScaleIO Storage Pool associated
+ with the protection domain.
+ type: string
+ system:
+ description: system is the name of the storage system as
+ configured in ScaleIO.
+ type: string
+ volumeName:
+ description: volumeName is the name of a volume already
+ created in the ScaleIO system that is associated with
+ this volume source.
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ description: 'secret represents a secret that should populate
+ this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
+ properties:
+ defaultMode:
+ description: 'defaultMode is Optional: mode bits used to
+ set permissions on created files by default. Must be an
+ octal value between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ items:
+ description: items If unspecified, each key-value pair in
+ the Data field of the referenced Secret will be projected
+ into the volume as a file whose name is the key and content
+ is the value.
+ items:
+ description: Maps a string key to a path within a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits used to
+ set permissions on this file. Must be an octal value
+ between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of the file
+ to map the key to. May not be an absolute path.
+ May not contain the path element '..'. May not start
+ with the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ optional:
+ description: optional field specify whether the Secret or
+ its keys must be defined
+ type: boolean
+ secretName:
+ description: 'secretName is the name of the secret in the
+ pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
+ type: string
+ type: object
+ storageos:
+ description: storageOS represents a StorageOS volume attached
+ and mounted on Kubernetes nodes.
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ readOnly:
+ description: readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ secretRef:
+ description: secretRef specifies the secret to use for obtaining
+ the StorageOS API credentials. If not specified, default
+ values will be attempted.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ description: volumeName is the human-readable name of the
+ StorageOS volume. Volume names are only unique within
+ a namespace.
+ type: string
+ volumeNamespace:
+ description: volumeNamespace specifies the scope of the
+ volume within StorageOS. If no namespace is specified
+ then the Pod's namespace will be used.
+ type: string
+ type: object
+ vsphereVolume:
+ description: vsphereVolume represents a vSphere volume attached
+ and mounted on kubelets host machine
+ properties:
+ fsType:
+ description: fsType is filesystem type to mount. Must be
+ a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ storagePolicyID:
+ description: storagePolicyID is the storage Policy Based
+ Management (SPBM) profile ID associated with the StoragePolicyName.
+ type: string
+ storagePolicyName:
+ description: storagePolicyName is the storage Policy Based
+ Management (SPBM) profile name.
+ type: string
+ volumePath:
+ description: volumePath is the path that identifies vSphere
+ volume vmdk
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - capabilities
+ - endpoint
+ type: object
+ status:
+ description: OpAMPBridgeStatus defines the observed state of OpAMPBridge.
+ properties:
+ version:
+ description: Version of the managed OpAMP Bridge (operand)
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetrycollector.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetrycollector.yaml
new file mode 100644
index 00000000..de4a4780
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetrycollector.yaml
@@ -0,0 +1,7092 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.12.0
+ name: opentelemetrycollectors.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: OpenTelemetryCollector
+ listKind: OpenTelemetryCollectorList
+ plural: opentelemetrycollectors
+ shortNames:
+ - otelcol
+ - otelcols
+ singular: opentelemetrycollector
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Deployment Mode
+ jsonPath: .spec.mode
+ name: Mode
+ type: string
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .status.scale.statusReplicas
+ name: Ready
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: OpenTelemetryCollector is the Schema for the opentelemetrycollectors
+ 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.
+ 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.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: OpenTelemetryCollectorSpec defines the desired state of OpenTelemetryCollector.
+ properties:
+ additionalContainers:
+ description: AdditionalContainers allows injecting additional containers
+ into the Collector's pod definition.
+ items:
+ description: A single application container that you want to run
+ within a pod.
+ properties:
+ args:
+ description: Arguments to the entrypoint. The container image's
+ CMD is used if this is not provided. Variable references $(VAR_NAME)
+ are expanded using the container's environment.
+ items:
+ type: string
+ type: array
+ command:
+ description: Entrypoint array. Not executed within a shell.
+ The container image's ENTRYPOINT is used if this is not provided.
+ Variable references $(VAR_NAME) are expanded using the container's
+ environment.
+ items:
+ type: string
+ type: array
+ env:
+ description: List of environment variables to set in the container.
+ Cannot be updated.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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
+ envFrom:
+ description: List of sources to populate environment variables
+ in the container. The keys defined within a source must be
+ a C_IDENTIFIER.
+ items:
+ description: EnvFromSource represents the source of a set
+ of ConfigMaps
+ properties:
+ configMapRef:
+ description: The ConfigMap to select from
+ properties:
+ 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 must be
+ defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ description: An optional identifier to prepend to each
+ key in the ConfigMap. Must be a C_IDENTIFIER.
+ type: string
+ secretRef:
+ description: The Secret to select from
+ properties:
+ 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 must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ image:
+ description: 'Container image name. More info: https://kubernetes.'
+ type: string
+ imagePullPolicy:
+ description: 'Image pull policy. One of Always, Never, IfNotPresent.
+ Defaults to Always if :latest tag is specified, or IfNotPresent
+ otherwise. Cannot be updated. More info: https://kubernetes.'
+ type: string
+ lifecycle:
+ description: Actions that the management system should take
+ in response to container lifecycle events. Cannot be updated.
+ properties:
+ postStart:
+ description: PostStart is called immediately after a container
+ is created. If the handler fails, the container is terminated
+ and restarted according to its restart policy.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for
+ the command is root ('/') in the container's
+ filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to
+ the pod IP. You probably want to set "Host" in
+ httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request.
+ HTTP allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the
+ host. Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ description: Deprecated. TCPSocket is NOT supported
+ as a LifecycleHandler and kept for the backward compatibility.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to,
+ defaults to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ description: PreStop is called immediately before a container
+ is terminated due to an API request or management event
+ such as liveness/startup probe failure, preemption, resource
+ contention, etc.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for
+ the command is root ('/') in the container's
+ filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to
+ the pod IP. You probably want to set "Host" in
+ httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request.
+ HTTP allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the
+ host. Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ description: Deprecated. TCPSocket is NOT supported
+ as a LifecycleHandler and kept for the backward compatibility.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to,
+ defaults to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ type: object
+ livenessProbe:
+ description: 'Periodic probe of container liveness. Container
+ will be restarted if the probe fails. Cannot be updated. More
+ info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for the
+ command is root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ description: Minimum consecutive failures for the probe
+ to be considered failed after having succeeded. Defaults
+ to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies an action involving a GRPC port.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ description: Service is the name of the service to place
+ in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has
+ started before liveness probes are initiated. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe
+ to be considered successful after having failed. Defaults
+ to 1. Must be 1 for liveness and startup. Minimum value
+ is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies an action involving a TCP
+ port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs
+ to terminate gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times
+ out. Defaults to 1 second. Minimum value is 1. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ name:
+ description: Name of the container specified as a DNS_LABEL.
+ Each container in a pod must have a unique name (DNS_LABEL).
+ Cannot be updated.
+ type: string
+ ports:
+ description: List of ports to expose from the container. Not
+ specifying a port here DOES NOT prevent that port from being
+ exposed. Any port which is listening on the default "0.0.0.
+ items:
+ description: ContainerPort represents a network port in a
+ single container.
+ properties:
+ containerPort:
+ description: Number of port to expose on the pod's IP
+ address. This must be a valid port number, 0 < x < 65536.
+ format: int32
+ type: integer
+ hostIP:
+ description: What host IP to bind the external port to.
+ type: string
+ hostPort:
+ description: Number of port to expose on the host. If
+ specified, this must be a valid port number, 0 < x <
+ 65536. If HostNetwork is specified, this must match
+ ContainerPort. Most containers do not need this.
+ format: int32
+ type: integer
+ name:
+ description: If specified, this must be an IANA_SVC_NAME
+ and unique within the pod. Each named port in a pod
+ must have a unique name. Name for the port that can
+ be referred to by services.
+ type: string
+ protocol:
+ default: TCP
+ description: Protocol for port. Must be UDP, TCP, or SCTP.
+ Defaults to "TCP".
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ description: 'Periodic probe of container service readiness.
+ Container will be removed from service endpoints if the probe
+ fails. Cannot be updated. More info: https://kubernetes.'
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for the
+ command is root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ description: Minimum consecutive failures for the probe
+ to be considered failed after having succeeded. Defaults
+ to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies an action involving a GRPC port.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ description: Service is the name of the service to place
+ in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has
+ started before liveness probes are initiated. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe
+ to be considered successful after having failed. Defaults
+ to 1. Must be 1 for liveness and startup. Minimum value
+ is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies an action involving a TCP
+ port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs
+ to terminate gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times
+ out. Defaults to 1 second. Minimum value is 1. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ description: Resources resize policy for the container.
+ items:
+ description: ContainerResizePolicy represents resource resize
+ policy for the container.
+ properties:
+ resourceName:
+ description: 'Name of the resource to which this resource
+ resize policy applies. Supported values: cpu, memory.'
+ type: string
+ restartPolicy:
+ description: Restart policy to apply when specified resource
+ is resized. If not specified, it defaults to NotRequired.
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ description: 'Compute Resources required by this container.
+ Cannot be updated. More info: 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."
+ 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.
+ type: object
+ type: object
+ restartPolicy:
+ description: RestartPolicy defines the restart behavior of individual
+ containers in a pod. This field may only be set for init containers,
+ and the only allowed value is "Always".
+ type: string
+ securityContext:
+ description: SecurityContext defines the security options the
+ container should be run with. If set, the fields of SecurityContext
+ override the equivalent fields of PodSecurityContext.
+ properties:
+ allowPrivilegeEscalation:
+ description: AllowPrivilegeEscalation controls whether a
+ process can gain more privileges than its parent process.
+ This bool directly controls if the no_new_privs flag will
+ be set on the container process.
+ type: boolean
+ capabilities:
+ description: The capabilities to add/drop when running containers.
+ Defaults to the default set of capabilities granted by
+ the container runtime. Note that this field cannot be
+ set when spec.os.name is windows.
+ properties:
+ add:
+ description: Added capabilities
+ items:
+ description: Capability represent POSIX capabilities
+ type
+ type: string
+ type: array
+ drop:
+ description: Removed capabilities
+ items:
+ description: Capability represent POSIX capabilities
+ type
+ type: string
+ type: array
+ type: object
+ privileged:
+ description: Run container in privileged mode. Processes
+ in privileged containers are essentially equivalent to
+ root on the host. Defaults to false. Note that this field
+ cannot be set when spec.os.name is windows.
+ type: boolean
+ procMount:
+ description: procMount denotes the type of proc mount to
+ use for the containers. The default is DefaultProcMount
+ which uses the container runtime defaults for readonly
+ paths and masked paths.
+ type: string
+ readOnlyRootFilesystem:
+ description: Whether this container has a read-only root
+ filesystem. Default is false. Note that this field cannot
+ be set when spec.os.name is windows.
+ type: boolean
+ runAsGroup:
+ description: The GID to run the entrypoint of the container
+ process. Uses runtime default if unset. May also be set
+ in PodSecurityContext.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: Indicates that the container must run as a
+ non-root user.
+ type: boolean
+ runAsUser:
+ description: The UID to run the entrypoint of the container
+ process. Defaults to user specified in image metadata
+ if unspecified. May also be set in PodSecurityContext.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: The SELinux context to be applied to the container.
+ If unspecified, the container runtime will allocate a
+ random SELinux context for each container. May also be
+ set in PodSecurityContext.
+ properties:
+ level:
+ description: Level is SELinux level label that applies
+ to the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies
+ to the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies
+ to the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies
+ to the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: The seccomp options to use by this container.
+ If seccomp options are provided at both the pod & container
+ level, the container options override the pod options.
+ properties:
+ localhostProfile:
+ description: localhostProfile indicates a profile defined
+ in a file on the node should be used. The profile
+ must be preconfigured on the node to work.
+ type: string
+ type:
+ description: "type indicates which kind of seccomp profile
+ will be applied. Valid options are: \n Localhost -
+ a profile defined in a file on the node should be
+ used."
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ description: The Windows specific settings applied to all
+ containers. If unspecified, the options from the PodSecurityContext
+ will be used.
+ properties:
+ gmsaCredentialSpec:
+ description: GMSACredentialSpec is where the GMSA admission
+ webhook (https://github.com/kubernetes-sigs/windows-gmsa)
+ inlines the contents of the GMSA credential spec named
+ by the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the
+ GMSA credential spec to use.
+ type: string
+ hostProcess:
+ description: HostProcess determines if a container should
+ be run as a 'Host Process' container.
+ type: boolean
+ runAsUserName:
+ description: The UserName in Windows to run the entrypoint
+ of the container process. Defaults to the user specified
+ in image metadata if unspecified. May also be set
+ in PodSecurityContext.
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ description: StartupProbe indicates that the Pod has successfully
+ initialized. If specified, no other probes are executed until
+ this completes successfully.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for the
+ command is root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ description: Minimum consecutive failures for the probe
+ to be considered failed after having succeeded. Defaults
+ to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies an action involving a GRPC port.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ description: Service is the name of the service to place
+ in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has
+ started before liveness probes are initiated. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe
+ to be considered successful after having failed. Defaults
+ to 1. Must be 1 for liveness and startup. Minimum value
+ is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies an action involving a TCP
+ port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs
+ to terminate gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times
+ out. Defaults to 1 second. Minimum value is 1. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ description: Whether this container should allocate a buffer
+ for stdin in the container runtime. If this is not set, reads
+ from stdin in the container will always result in EOF. Default
+ is false.
+ type: boolean
+ stdinOnce:
+ description: Whether the container runtime should close the
+ stdin channel after it has been opened by a single attach.
+ When stdin is true the stdin stream will remain open across
+ multiple attach sessions.
+ type: boolean
+ terminationMessagePath:
+ description: 'Optional: Path at which the file to which the
+ container''s termination message will be written is mounted
+ into the container''s filesystem.'
+ type: string
+ terminationMessagePolicy:
+ description: Indicate how the termination message should be
+ populated. File will use the contents of terminationMessagePath
+ to populate the container status message on both success and
+ failure.
+ type: string
+ tty:
+ description: Whether this container should allocate a TTY for
+ itself, also requires 'stdin' to be true. Default is false.
+ type: boolean
+ volumeDevices:
+ description: volumeDevices is the list of block devices to be
+ used by the container.
+ items:
+ description: volumeDevice describes a mapping of a raw block
+ device within a container.
+ properties:
+ devicePath:
+ description: devicePath is the path inside of the container
+ that the device will be mapped to.
+ type: string
+ name:
+ description: name must match the name of a persistentVolumeClaim
+ in the pod
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ description: Pod volumes to mount into the container's filesystem.
+ Cannot be updated.
+ items:
+ description: VolumeMount describes a mounting of a Volume
+ within a container.
+ properties:
+ mountPath:
+ description: Path within the container at which the volume
+ should be mounted. Must not contain ':'.
+ type: string
+ mountPropagation:
+ description: mountPropagation determines how mounts are
+ propagated from the host to container and the other
+ way around. When not set, MountPropagationNone is used.
+ This field is beta in 1.10.
+ type: string
+ name:
+ description: This must match the Name of a Volume.
+ type: string
+ readOnly:
+ description: Mounted read-only if true, read-write otherwise
+ (false or unspecified). Defaults to false.
+ type: boolean
+ subPath:
+ description: Path within the volume from which the container's
+ volume should be mounted. Defaults to "" (volume's root).
+ type: string
+ subPathExpr:
+ description: Expanded path within the volume from which
+ the container's volume should be mounted.
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ workingDir:
+ description: Container's working directory. If not specified,
+ the container runtime's default will be used, which might
+ be configured in the container image. Cannot be updated.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ description: If specified, indicates the pod's scheduling constraints
+ properties:
+ nodeAffinity:
+ description: Describes node affinity scheduling rules for the
+ pod.
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods to
+ nodes that satisfy the affinity expressions specified by
+ this field, but it may choose a node that violates one or
+ more of the expressions.
+ items:
+ description: An empty preferred scheduling term matches
+ all objects with implicit weight 0 (i.e. it's a no-op).
+ A null preferred scheduling term matches no objects (i.e.
+ is also a no-op).
+ properties:
+ preference:
+ description: A node selector term, associated with the
+ corresponding weight.
+ properties:
+ matchExpressions:
+ description: A list of node selector requirements
+ by node's labels.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ description: A list of node selector requirements
+ by node's fields.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ description: Weight associated with matching the corresponding
+ nodeSelectorTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the affinity requirements specified by this
+ field are not met at scheduling time, the pod will not be
+ scheduled onto the node.
+ properties:
+ nodeSelectorTerms:
+ description: Required. A list of node selector terms.
+ The terms are ORed.
+ items:
+ description: A null or empty node selector term matches
+ no objects. The requirements of them are ANDed. The
+ TopologySelectorTerm type implements a subset of the
+ NodeSelectorTerm.
+ properties:
+ matchExpressions:
+ description: A list of node selector requirements
+ by node's labels.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ description: A list of node selector requirements
+ by node's fields.
+ items:
+ description: A node selector requirement is a
+ selector that contains values, a key, and an
+ operator that relates the key and values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators are
+ In, NotIn, Exists, DoesNotExist. Gt, and
+ Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ description: Describes pod affinity scheduling rules (e.g. co-locate
+ this pod in the same node, zone, etc. as some other pod(s)).
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods to
+ nodes that satisfy the affinity expressions specified by
+ this field, but it may choose a node that violates one or
+ more of the expressions.
+ items:
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred node(s)
+ properties:
+ podAffinityTerm:
+ description: Required. A pod affinity term, associated
+ with the corresponding weight.
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by this
+ field and the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to. The
+ term is applied to the union of the namespaces
+ listed in this field and the ones selected by
+ namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods
+ matching the labelSelector in the specified namespaces,
+ where co-located is defined as running on a node
+ whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ description: weight associated with matching the corresponding
+ podAffinityTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the affinity requirements specified by this
+ field are not met at scheduling time, the pod will not be
+ scheduled onto the node.
+ items:
+ description: Defines a set of pods (namely those matching
+ the labelSelector relative to the given namespace(s))
+ that this pod should be co-located (affinity) or not co-located
+ (anti-affinity) with, where co-locate
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied to the
+ union of the namespaces selected by this field and
+ the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list of namespace
+ names that the term applies to. The term is applied
+ to the union of the namespaces listed in this field
+ and the ones selected by namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods matching
+ the labelSelector in the specified namespaces, where
+ co-located is defined as running on a node whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ podAntiAffinity:
+ description: Describes pod anti-affinity scheduling rules (e.g.
+ avoid putting this pod in the same node, zone, etc. as some
+ other pod(s)).
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods to
+ nodes that satisfy the anti-affinity expressions specified
+ by this field, but it may choose a node that violates one
+ or more of the expressions.
+ items:
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred node(s)
+ properties:
+ podAffinityTerm:
+ description: Required. A pod affinity term, associated
+ with the corresponding weight.
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by this
+ field and the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to. The
+ term is applied to the union of the namespaces
+ listed in this field and the ones selected by
+ namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods
+ matching the labelSelector in the specified namespaces,
+ where co-located is defined as running on a node
+ whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ description: weight associated with matching the corresponding
+ podAffinityTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the anti-affinity requirements specified by
+ this field are not met at scheduling time, the pod will
+ not be scheduled onto the node.
+ items:
+ description: Defines a set of pods (namely those matching
+ the labelSelector relative to the given namespace(s))
+ that this pod should be co-located (affinity) or not co-located
+ (anti-affinity) with, where co-locate
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied to the
+ union of the namespaces selected by this field and
+ the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list of namespace
+ names that the term applies to. The term is applied
+ to the union of the namespaces listed in this field
+ and the ones selected by namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods matching
+ the labelSelector in the specified namespaces, where
+ co-located is defined as running on a node whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ type: object
+ args:
+ additionalProperties:
+ type: string
+ description: Args is the set of arguments to pass to the OpenTelemetry
+ Collector binary
+ type: object
+ autoscaler:
+ description: Autoscaler specifies the pod autoscaling configuration
+ to use for the OpenTelemetryCollector workload.
+ properties:
+ behavior:
+ description: HorizontalPodAutoscalerBehavior configures the scaling
+ behavior of the target in both Up and Down directions (scaleUp
+ and scaleDown fields respectively).
+ properties:
+ scaleDown:
+ description: scaleDown is scaling policy for scaling Down.
+ If not set, the default value is to allow to scale down
+ to minReplicas pods, with a 300 second stabilization window
+ (i.e.
+ properties:
+ policies:
+ description: policies is a list of potential scaling polices
+ which can be used during scaling. At least one policy
+ must be specified, otherwise the HPAScalingRules will
+ be discarded as invalid
+ items:
+ description: HPAScalingPolicy is a single policy which
+ must hold true for a specified past interval.
+ properties:
+ periodSeconds:
+ description: periodSeconds specifies the window
+ of time for which the policy should hold true.
+ PeriodSeconds must be greater than zero and less
+ than or equal to 1800 (30 min).
+ format: int32
+ type: integer
+ type:
+ description: type is used to specify the scaling
+ policy.
+ type: string
+ value:
+ description: value contains the amount of change
+ which is permitted by the policy. It must be greater
+ than zero
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ description: selectPolicy is used to specify which policy
+ should be used. If not set, the default value Max is
+ used.
+ type: string
+ stabilizationWindowSeconds:
+ description: stabilizationWindowSeconds is the number
+ of seconds for which past recommendations should be
+ considered while scaling up or scaling down.
+ format: int32
+ type: integer
+ type: object
+ scaleUp:
+ description: scaleUp is scaling policy for scaling Up.
+ properties:
+ policies:
+ description: policies is a list of potential scaling polices
+ which can be used during scaling. At least one policy
+ must be specified, otherwise the HPAScalingRules will
+ be discarded as invalid
+ items:
+ description: HPAScalingPolicy is a single policy which
+ must hold true for a specified past interval.
+ properties:
+ periodSeconds:
+ description: periodSeconds specifies the window
+ of time for which the policy should hold true.
+ PeriodSeconds must be greater than zero and less
+ than or equal to 1800 (30 min).
+ format: int32
+ type: integer
+ type:
+ description: type is used to specify the scaling
+ policy.
+ type: string
+ value:
+ description: value contains the amount of change
+ which is permitted by the policy. It must be greater
+ than zero
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ description: selectPolicy is used to specify which policy
+ should be used. If not set, the default value Max is
+ used.
+ type: string
+ stabilizationWindowSeconds:
+ description: stabilizationWindowSeconds is the number
+ of seconds for which past recommendations should be
+ considered while scaling up or scaling down.
+ format: int32
+ type: integer
+ type: object
+ type: object
+ maxReplicas:
+ description: MaxReplicas sets an upper bound to the autoscaling
+ feature. If MaxReplicas is set autoscaling is enabled.
+ format: int32
+ type: integer
+ metrics:
+ description: Metrics is meant to provide a customizable way to
+ configure HPA metrics. currently the only supported custom metrics
+ is type=Pod.
+ items:
+ description: MetricSpec defines a subset of metrics to be defined
+ for the HPA's metric array more metric type can be supported
+ as needed. See https://pkg.go.dev/k8s.io/api/autoscaling/v2#MetricSpec
+ for reference.
+ properties:
+ pods:
+ description: PodsMetricSource indicates how to scale on
+ a metric describing each pod in the current scale target
+ (for example, transactions-processed-per-second).
+ properties:
+ metric:
+ description: metric identifies the target metric by
+ name and selector
+ properties:
+ name:
+ description: name is the name of the given metric
+ type: string
+ selector:
+ description: selector is the string-encoded form
+ of a standard kubernetes label selector for the
+ given metric When set, it is passed as an additional
+ parameter to the metrics server for more specific
+ metrics scopi
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - name
+ type: object
+ target:
+ description: target specifies the target value for the
+ given metric
+ properties:
+ averageUtilization:
+ description: averageUtilization is the target value
+ of the average of the resource metric across all
+ relevant pods, represented as a percentage of
+ the requested value of the resource for the pods.
+ format: int32
+ type: integer
+ averageValue:
+ anyOf:
+ - type: integer
+ - type: string
+ description: averageValue is the target value of
+ the average of the metric across all relevant
+ pods (as a quantity)
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type:
+ description: type represents whether the metric
+ type is Utilization, Value, or AverageValue
+ type: string
+ value:
+ anyOf:
+ - type: integer
+ - type: string
+ description: value is the target value of the metric
+ (as a quantity).
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - type
+ type: object
+ required:
+ - metric
+ - target
+ type: object
+ type:
+ description: MetricSourceType indicates the type of metric.
+ type: string
+ required:
+ - type
+ type: object
+ type: array
+ minReplicas:
+ description: MinReplicas sets a lower bound to the autoscaling
+ feature. Set this if your are using autoscaling. It must be
+ at least 1
+ format: int32
+ type: integer
+ targetCPUUtilization:
+ description: TargetCPUUtilization sets the target average CPU
+ used across all replicas. If average CPU exceeds this value,
+ the HPA will scale up. Defaults to 90 percent.
+ format: int32
+ type: integer
+ targetMemoryUtilization:
+ description: TargetMemoryUtilization sets the target average memory
+ utilization across all replicas
+ format: int32
+ type: integer
+ type: object
+ config:
+ description: Config is the raw JSON to be used as the collector's
+ configuration. Refer to the OpenTelemetry Collector documentation
+ for details.
+ type: string
+ configmaps:
+ description: ConfigMaps is a list of ConfigMaps in the same namespace
+ as the OpenTelemetryCollector object, which shall be mounted into
+ the Collector Pods.
+ items:
+ properties:
+ mountpath:
+ type: string
+ name:
+ description: Configmap defines name and path where the configMaps
+ should be mounted.
+ type: string
+ required:
+ - mountpath
+ - name
+ type: object
+ type: array
+ env:
+ description: ENV vars to set on the OpenTelemetry Collector's Pods.
+ These can then in certain cases be consumed in the config file for
+ the Collector.
+ 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.
+ 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['''']`, `metadata.annotations['''']`,
+ spec.nodeName, spec.serviceAccountName, status.hostIP,
+ status.'
+ 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.'
+ 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
+ envFrom:
+ description: List of sources to populate environment variables on
+ the OpenTelemetry Collector's Pods. These can then in certain cases
+ be consumed in the config file for the Collector.
+ items:
+ description: EnvFromSource represents the source of a set of ConfigMaps
+ properties:
+ configMapRef:
+ description: The ConfigMap to select from
+ properties:
+ 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 must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ description: An optional identifier to prepend to each key in
+ the ConfigMap. Must be a C_IDENTIFIER.
+ type: string
+ secretRef:
+ description: The Secret to select from
+ properties:
+ 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 must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ hostNetwork:
+ description: HostNetwork indicates if the pod should run in the host
+ networking namespace.
+ type: boolean
+ image:
+ description: Image indicates the container image to use for the OpenTelemetry
+ Collector.
+ type: string
+ imagePullPolicy:
+ description: ImagePullPolicy indicates the pull policy to be used
+ for retrieving the container image (Always, Never, IfNotPresent)
+ type: string
+ ingress:
+ description: 'Ingress is used to specify how OpenTelemetry Collector
+ is exposed. This functionality is only available if one of the valid
+ modes is set. Valid modes are: deployment, daemonset and statefulset.'
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: 'Annotations to add to ingress. e.g. ''cert-manager.io/cluster-issuer:
+ "letsencrypt"'''
+ type: object
+ hostname:
+ description: Hostname by which the ingress proxy can be reached.
+ type: string
+ ingressClassName:
+ description: IngressClassName is the name of an IngressClass cluster
+ resource. Ingress controller implementations use this field
+ to know whether they should be serving this Ingress resource.
+ type: string
+ route:
+ description: Route is an OpenShift specific section that is only
+ considered when type "route" is used.
+ properties:
+ termination:
+ description: Termination indicates termination type. By default
+ "edge" is used.
+ enum:
+ - insecure
+ - edge
+ - passthrough
+ - reencrypt
+ type: string
+ type: object
+ ruleType:
+ description: RuleType defines how Ingress exposes collector receivers.
+ IngressRuleTypePath ("path") exposes each receiver port on a
+ unique path on single domain defined in Hostname.
+ enum:
+ - path
+ - subdomain
+ type: string
+ tls:
+ description: TLS configuration.
+ items:
+ description: IngressTLS describes the transport layer security
+ associated with an ingress.
+ properties:
+ hosts:
+ description: hosts is a list of hosts included in the TLS
+ certificate. The values in this list must match the name/s
+ used in the tlsSecret.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ secretName:
+ description: secretName is the name of the secret used to
+ terminate TLS traffic on port 443. Field is left optional
+ to allow TLS routing based on SNI hostname alone.
+ type: string
+ type: object
+ type: array
+ type:
+ description: 'Type default value is: "" Supported types are: ingress,
+ route'
+ enum:
+ - ingress
+ - route
+ type: string
+ type: object
+ initContainers:
+ description: InitContainers allows injecting initContainers to the
+ Collector's pod definition.
+ items:
+ description: A single application container that you want to run
+ within a pod.
+ properties:
+ args:
+ description: Arguments to the entrypoint. The container image's
+ CMD is used if this is not provided. Variable references $(VAR_NAME)
+ are expanded using the container's environment.
+ items:
+ type: string
+ type: array
+ command:
+ description: Entrypoint array. Not executed within a shell.
+ The container image's ENTRYPOINT is used if this is not provided.
+ Variable references $(VAR_NAME) are expanded using the container's
+ environment.
+ items:
+ type: string
+ type: array
+ env:
+ description: List of environment variables to set in the container.
+ Cannot be updated.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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
+ envFrom:
+ description: List of sources to populate environment variables
+ in the container. The keys defined within a source must be
+ a C_IDENTIFIER.
+ items:
+ description: EnvFromSource represents the source of a set
+ of ConfigMaps
+ properties:
+ configMapRef:
+ description: The ConfigMap to select from
+ properties:
+ 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 must be
+ defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ description: An optional identifier to prepend to each
+ key in the ConfigMap. Must be a C_IDENTIFIER.
+ type: string
+ secretRef:
+ description: The Secret to select from
+ properties:
+ 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 must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ image:
+ description: 'Container image name. More info: https://kubernetes.'
+ type: string
+ imagePullPolicy:
+ description: 'Image pull policy. One of Always, Never, IfNotPresent.
+ Defaults to Always if :latest tag is specified, or IfNotPresent
+ otherwise. Cannot be updated. More info: https://kubernetes.'
+ type: string
+ lifecycle:
+ description: Actions that the management system should take
+ in response to container lifecycle events. Cannot be updated.
+ properties:
+ postStart:
+ description: PostStart is called immediately after a container
+ is created. If the handler fails, the container is terminated
+ and restarted according to its restart policy.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for
+ the command is root ('/') in the container's
+ filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to
+ the pod IP. You probably want to set "Host" in
+ httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request.
+ HTTP allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the
+ host. Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ description: Deprecated. TCPSocket is NOT supported
+ as a LifecycleHandler and kept for the backward compatibility.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to,
+ defaults to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ description: PreStop is called immediately before a container
+ is terminated due to an API request or management event
+ such as liveness/startup probe failure, preemption, resource
+ contention, etc.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for
+ the command is root ('/') in the container's
+ filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to
+ the pod IP. You probably want to set "Host" in
+ httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request.
+ HTTP allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the
+ host. Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ description: Deprecated. TCPSocket is NOT supported
+ as a LifecycleHandler and kept for the backward compatibility.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to,
+ defaults to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access
+ on the container. Number must be in the range
+ 1 to 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ type: object
+ livenessProbe:
+ description: 'Periodic probe of container liveness. Container
+ will be restarted if the probe fails. Cannot be updated. More
+ info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for the
+ command is root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ description: Minimum consecutive failures for the probe
+ to be considered failed after having succeeded. Defaults
+ to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies an action involving a GRPC port.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ description: Service is the name of the service to place
+ in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has
+ started before liveness probes are initiated. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe
+ to be considered successful after having failed. Defaults
+ to 1. Must be 1 for liveness and startup. Minimum value
+ is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies an action involving a TCP
+ port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs
+ to terminate gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times
+ out. Defaults to 1 second. Minimum value is 1. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ name:
+ description: Name of the container specified as a DNS_LABEL.
+ Each container in a pod must have a unique name (DNS_LABEL).
+ Cannot be updated.
+ type: string
+ ports:
+ description: List of ports to expose from the container. Not
+ specifying a port here DOES NOT prevent that port from being
+ exposed. Any port which is listening on the default "0.0.0.
+ items:
+ description: ContainerPort represents a network port in a
+ single container.
+ properties:
+ containerPort:
+ description: Number of port to expose on the pod's IP
+ address. This must be a valid port number, 0 < x < 65536.
+ format: int32
+ type: integer
+ hostIP:
+ description: What host IP to bind the external port to.
+ type: string
+ hostPort:
+ description: Number of port to expose on the host. If
+ specified, this must be a valid port number, 0 < x <
+ 65536. If HostNetwork is specified, this must match
+ ContainerPort. Most containers do not need this.
+ format: int32
+ type: integer
+ name:
+ description: If specified, this must be an IANA_SVC_NAME
+ and unique within the pod. Each named port in a pod
+ must have a unique name. Name for the port that can
+ be referred to by services.
+ type: string
+ protocol:
+ default: TCP
+ description: Protocol for port. Must be UDP, TCP, or SCTP.
+ Defaults to "TCP".
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ description: 'Periodic probe of container service readiness.
+ Container will be removed from service endpoints if the probe
+ fails. Cannot be updated. More info: https://kubernetes.'
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for the
+ command is root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ description: Minimum consecutive failures for the probe
+ to be considered failed after having succeeded. Defaults
+ to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies an action involving a GRPC port.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ description: Service is the name of the service to place
+ in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has
+ started before liveness probes are initiated. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe
+ to be considered successful after having failed. Defaults
+ to 1. Must be 1 for liveness and startup. Minimum value
+ is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies an action involving a TCP
+ port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs
+ to terminate gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times
+ out. Defaults to 1 second. Minimum value is 1. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ description: Resources resize policy for the container.
+ items:
+ description: ContainerResizePolicy represents resource resize
+ policy for the container.
+ properties:
+ resourceName:
+ description: 'Name of the resource to which this resource
+ resize policy applies. Supported values: cpu, memory.'
+ type: string
+ restartPolicy:
+ description: Restart policy to apply when specified resource
+ is resized. If not specified, it defaults to NotRequired.
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ description: 'Compute Resources required by this container.
+ Cannot be updated. More info: 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."
+ 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.
+ type: object
+ type: object
+ restartPolicy:
+ description: RestartPolicy defines the restart behavior of individual
+ containers in a pod. This field may only be set for init containers,
+ and the only allowed value is "Always".
+ type: string
+ securityContext:
+ description: SecurityContext defines the security options the
+ container should be run with. If set, the fields of SecurityContext
+ override the equivalent fields of PodSecurityContext.
+ properties:
+ allowPrivilegeEscalation:
+ description: AllowPrivilegeEscalation controls whether a
+ process can gain more privileges than its parent process.
+ This bool directly controls if the no_new_privs flag will
+ be set on the container process.
+ type: boolean
+ capabilities:
+ description: The capabilities to add/drop when running containers.
+ Defaults to the default set of capabilities granted by
+ the container runtime. Note that this field cannot be
+ set when spec.os.name is windows.
+ properties:
+ add:
+ description: Added capabilities
+ items:
+ description: Capability represent POSIX capabilities
+ type
+ type: string
+ type: array
+ drop:
+ description: Removed capabilities
+ items:
+ description: Capability represent POSIX capabilities
+ type
+ type: string
+ type: array
+ type: object
+ privileged:
+ description: Run container in privileged mode. Processes
+ in privileged containers are essentially equivalent to
+ root on the host. Defaults to false. Note that this field
+ cannot be set when spec.os.name is windows.
+ type: boolean
+ procMount:
+ description: procMount denotes the type of proc mount to
+ use for the containers. The default is DefaultProcMount
+ which uses the container runtime defaults for readonly
+ paths and masked paths.
+ type: string
+ readOnlyRootFilesystem:
+ description: Whether this container has a read-only root
+ filesystem. Default is false. Note that this field cannot
+ be set when spec.os.name is windows.
+ type: boolean
+ runAsGroup:
+ description: The GID to run the entrypoint of the container
+ process. Uses runtime default if unset. May also be set
+ in PodSecurityContext.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: Indicates that the container must run as a
+ non-root user.
+ type: boolean
+ runAsUser:
+ description: The UID to run the entrypoint of the container
+ process. Defaults to user specified in image metadata
+ if unspecified. May also be set in PodSecurityContext.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: The SELinux context to be applied to the container.
+ If unspecified, the container runtime will allocate a
+ random SELinux context for each container. May also be
+ set in PodSecurityContext.
+ properties:
+ level:
+ description: Level is SELinux level label that applies
+ to the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies
+ to the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies
+ to the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies
+ to the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: The seccomp options to use by this container.
+ If seccomp options are provided at both the pod & container
+ level, the container options override the pod options.
+ properties:
+ localhostProfile:
+ description: localhostProfile indicates a profile defined
+ in a file on the node should be used. The profile
+ must be preconfigured on the node to work.
+ type: string
+ type:
+ description: "type indicates which kind of seccomp profile
+ will be applied. Valid options are: \n Localhost -
+ a profile defined in a file on the node should be
+ used."
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ description: The Windows specific settings applied to all
+ containers. If unspecified, the options from the PodSecurityContext
+ will be used.
+ properties:
+ gmsaCredentialSpec:
+ description: GMSACredentialSpec is where the GMSA admission
+ webhook (https://github.com/kubernetes-sigs/windows-gmsa)
+ inlines the contents of the GMSA credential spec named
+ by the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the
+ GMSA credential spec to use.
+ type: string
+ hostProcess:
+ description: HostProcess determines if a container should
+ be run as a 'Host Process' container.
+ type: boolean
+ runAsUserName:
+ description: The UserName in Windows to run the entrypoint
+ of the container process. Defaults to the user specified
+ in image metadata if unspecified. May also be set
+ in PodSecurityContext.
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ description: StartupProbe indicates that the Pod has successfully
+ initialized. If specified, no other probes are executed until
+ this completes successfully.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute
+ inside the container, the working directory for the
+ command is root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ failureThreshold:
+ description: Minimum consecutive failures for the probe
+ to be considered failed after having succeeded. Defaults
+ to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies an action involving a GRPC port.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ description: Service is the name of the service to place
+ in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will
+ be canonicalized upon output, so case-variant
+ names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has
+ started before liveness probes are initiated. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe
+ to be considered successful after having failed. Defaults
+ to 1. Must be 1 for liveness and startup. Minimum value
+ is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies an action involving a TCP
+ port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on
+ the container. Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs
+ to terminate gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times
+ out. Defaults to 1 second. Minimum value is 1. More info:
+ https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ description: Whether this container should allocate a buffer
+ for stdin in the container runtime. If this is not set, reads
+ from stdin in the container will always result in EOF. Default
+ is false.
+ type: boolean
+ stdinOnce:
+ description: Whether the container runtime should close the
+ stdin channel after it has been opened by a single attach.
+ When stdin is true the stdin stream will remain open across
+ multiple attach sessions.
+ type: boolean
+ terminationMessagePath:
+ description: 'Optional: Path at which the file to which the
+ container''s termination message will be written is mounted
+ into the container''s filesystem.'
+ type: string
+ terminationMessagePolicy:
+ description: Indicate how the termination message should be
+ populated. File will use the contents of terminationMessagePath
+ to populate the container status message on both success and
+ failure.
+ type: string
+ tty:
+ description: Whether this container should allocate a TTY for
+ itself, also requires 'stdin' to be true. Default is false.
+ type: boolean
+ volumeDevices:
+ description: volumeDevices is the list of block devices to be
+ used by the container.
+ items:
+ description: volumeDevice describes a mapping of a raw block
+ device within a container.
+ properties:
+ devicePath:
+ description: devicePath is the path inside of the container
+ that the device will be mapped to.
+ type: string
+ name:
+ description: name must match the name of a persistentVolumeClaim
+ in the pod
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ description: Pod volumes to mount into the container's filesystem.
+ Cannot be updated.
+ items:
+ description: VolumeMount describes a mounting of a Volume
+ within a container.
+ properties:
+ mountPath:
+ description: Path within the container at which the volume
+ should be mounted. Must not contain ':'.
+ type: string
+ mountPropagation:
+ description: mountPropagation determines how mounts are
+ propagated from the host to container and the other
+ way around. When not set, MountPropagationNone is used.
+ This field is beta in 1.10.
+ type: string
+ name:
+ description: This must match the Name of a Volume.
+ type: string
+ readOnly:
+ description: Mounted read-only if true, read-write otherwise
+ (false or unspecified). Defaults to false.
+ type: boolean
+ subPath:
+ description: Path within the volume from which the container's
+ volume should be mounted. Defaults to "" (volume's root).
+ type: string
+ subPathExpr:
+ description: Expanded path within the volume from which
+ the container's volume should be mounted.
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ workingDir:
+ description: Container's working directory. If not specified,
+ the container runtime's default will be used, which might
+ be configured in the container image. Cannot be updated.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ lifecycle:
+ description: Actions that the management system should take in response
+ to container lifecycle events. Cannot be updated.
+ properties:
+ postStart:
+ description: PostStart is called immediately after a container
+ is created. If the handler fails, the container is terminated
+ and restarted according to its restart policy.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute inside
+ the container, the working directory for the command is
+ root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header to
+ be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will be
+ canonicalized upon output, so case-variant names
+ will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on the
+ container. Number must be in the range 1 to 65535. Name
+ must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ description: Deprecated. TCPSocket is NOT supported as a LifecycleHandler
+ and kept for the backward compatibility.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on the
+ container. Number must be in the range 1 to 65535. Name
+ must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ description: PreStop is called immediately before a container
+ is terminated due to an API request or management event such
+ as liveness/startup probe failure, preemption, resource contention,
+ etc.
+ properties:
+ exec:
+ description: Exec specifies the action to take.
+ properties:
+ command:
+ description: Command is the command line to execute inside
+ the container, the working directory for the command is
+ root ('/') in the container's filesystem.
+ items:
+ type: string
+ type: array
+ type: object
+ httpGet:
+ description: HTTPGet specifies the http request to perform.
+ properties:
+ host:
+ description: Host name to connect to, defaults to the
+ pod IP. You probably want to set "Host" in httpHeaders
+ instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header to
+ be used in HTTP probes
+ properties:
+ name:
+ description: The header field name. This will be
+ canonicalized upon output, so case-variant names
+ will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the port to access on the
+ container. Number must be in the range 1 to 65535. Name
+ must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ tcpSocket:
+ description: Deprecated. TCPSocket is NOT supported as a LifecycleHandler
+ and kept for the backward compatibility.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on the
+ container. Number must be in the range 1 to 65535. Name
+ must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ type: object
+ livenessProbe:
+ description: Liveness config for the OpenTelemetry Collector except
+ the probe handler which is auto generated from the health extension
+ of the collector.
+ properties:
+ failureThreshold:
+ description: Minimum consecutive failures for the probe to be
+ considered failed after having succeeded. Defaults to 3. Minimum
+ value is 1.
+ format: int32
+ type: integer
+ initialDelaySeconds:
+ description: 'Number of seconds after the container has started
+ before liveness probes are initiated. Defaults to 0 seconds.
+ Minimum value is 0. More info: https://kubernetes.'
+ format: int32
+ type: integer
+ periodSeconds:
+ description: How often (in seconds) to perform the probe. Default
+ to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: Minimum consecutive successes for the probe to be
+ considered successful after having failed. Defaults to 1. Must
+ be 1 for liveness and startup. Minimum value is 1.
+ format: int32
+ type: integer
+ terminationGracePeriodSeconds:
+ description: Optional duration in seconds the pod needs to terminate
+ gracefully upon probe failure.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: 'Number of seconds after which the probe times out.
+ Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
+ format: int32
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ description: ManagementState defines if the CR should be managed by
+ the operator or not. Default is managed.
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ maxReplicas:
+ description: 'MaxReplicas sets an upper bound to the autoscaling feature.
+ If MaxReplicas is set autoscaling is enabled. Deprecated: use "OpenTelemetryCollector.Spec.Autoscaler.MaxReplicas"
+ instead.'
+ format: int32
+ type: integer
+ minReplicas:
+ description: 'MinReplicas sets a lower bound to the autoscaling feature. Set
+ this if you are using autoscaling. It must be at least 1 Deprecated:
+ use "OpenTelemetryCollector.Spec.Autoscaler.MinReplicas" instead.'
+ format: int32
+ type: integer
+ mode:
+ description: Mode represents how the collector should be deployed
+ (deployment, daemonset, statefulset or sidecar)
+ enum:
+ - daemonset
+ - deployment
+ - sidecar
+ - statefulset
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description: NodeSelector to schedule OpenTelemetry Collector pods.
+ This is only relevant to daemonset, statefulset, and deployment
+ mode
+ type: object
+ observability:
+ description: ObservabilitySpec defines how telemetry data gets handled.
+ properties:
+ metrics:
+ description: Metrics defines the metrics configuration for operands.
+ properties:
+ enableMetrics:
+ description: EnableMetrics specifies if ServiceMonitor should
+ be created for the OpenTelemetry Collector and Prometheus
+ Exporters. The operator.observability.
+ type: boolean
+ type: object
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ description: PodAnnotations is the set of annotations that will be
+ attached to Collector and Target Allocator pods.
+ type: object
+ podDisruptionBudget:
+ description: PodDisruptionBudget specifies the pod disruption budget
+ configuration to use for the OpenTelemetryCollector workload.
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ description: An eviction is allowed if at most "maxUnavailable"
+ pods selected by "selector" are unavailable after the eviction,
+ i.e. even in absence of the evicted pod.
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ description: An eviction is allowed if at least "minAvailable"
+ pods selected by "selector" will still be available after the
+ eviction, i.e. even in the absence of the evicted pod.
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ description: PodSecurityContext configures the pod security context
+ for the opentelemetry-collector pod, when running as a deployment,
+ daemonset, or statefulset.
+ properties:
+ fsGroup:
+ description: "A special supplemental group that applies to all
+ containers in a pod. Some volume types allow the Kubelet to
+ change the ownership of that volume to be owned by the pod:
+ \n 1."
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ description: fsGroupChangePolicy defines behavior of changing
+ ownership and permission of the volume before being exposed
+ inside Pod.
+ type: string
+ runAsGroup:
+ description: The GID to run the entrypoint of the container process.
+ Uses runtime default if unset. May also be set in SecurityContext.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: Indicates that the container must run as a non-root
+ user.
+ type: boolean
+ runAsUser:
+ description: The UID to run the entrypoint of the container process.
+ Defaults to user specified in image metadata if unspecified.
+ May also be set in SecurityContext.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: The SELinux context to be applied to all containers.
+ If unspecified, the container runtime will allocate a random
+ SELinux context for each container. May also be set in SecurityContext.
+ properties:
+ level:
+ description: Level is SELinux level label that applies to
+ the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies to
+ the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies to
+ the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies to
+ the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: The seccomp options to use by the containers in this
+ pod. Note that this field cannot be set when spec.os.name is
+ windows.
+ properties:
+ localhostProfile:
+ description: localhostProfile indicates a profile defined
+ in a file on the node should be used. The profile must be
+ preconfigured on the node to work.
+ type: string
+ type:
+ description: "type indicates which kind of seccomp profile
+ will be applied. Valid options are: \n Localhost - a profile
+ defined in a file on the node should be used."
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ description: A list of groups applied to the first process run
+ in each container, in addition to the container's primary GID,
+ the fsGroup (if specified), and group memberships defined in
+ the container image for th
+ items:
+ format: int64
+ type: integer
+ type: array
+ sysctls:
+ description: Sysctls hold a list of namespaced sysctls used for
+ the pod. Pods with unsupported sysctls (by the container runtime)
+ might fail to launch. Note that this field cannot be set when
+ spec.os.
+ items:
+ description: Sysctl defines a kernel parameter to be set
+ properties:
+ name:
+ description: Name of a property to set
+ type: string
+ value:
+ description: Value of a property to set
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ windowsOptions:
+ description: The Windows specific settings applied to all containers.
+ If unspecified, the options within a container's SecurityContext
+ will be used.
+ properties:
+ gmsaCredentialSpec:
+ description: GMSACredentialSpec is where the GMSA admission
+ webhook (https://github.com/kubernetes-sigs/windows-gmsa)
+ inlines the contents of the GMSA credential spec named by
+ the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the GMSA
+ credential spec to use.
+ type: string
+ hostProcess:
+ description: HostProcess determines if a container should
+ be run as a 'Host Process' container.
+ type: boolean
+ runAsUserName:
+ description: The UserName in Windows to run the entrypoint
+ of the container process. Defaults to the user specified
+ in image metadata if unspecified. May also be set in PodSecurityContext.
+ type: string
+ type: object
+ type: object
+ ports:
+ description: Ports allows a set of ports to be exposed by the underlying
+ v1.Service. By default, the operator will attempt to infer the required
+ ports by parsing the .Spec.
+ items:
+ description: ServicePort contains information on service's port.
+ properties:
+ appProtocol:
+ description: The application protocol for this port. This is
+ used as a hint for implementations to offer richer behavior
+ for protocols that they understand. This field follows standard
+ Kubernetes label syntax.
+ type: string
+ name:
+ description: The name of this port within the service. This
+ must be a DNS_LABEL. All ports within a ServiceSpec must have
+ unique names.
+ type: string
+ nodePort:
+ description: The port on each node on which this service is
+ exposed when type is NodePort or LoadBalancer. Usually assigned
+ by the system.
+ format: int32
+ type: integer
+ port:
+ description: The port that will be exposed by this service.
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ description: The IP protocol for this port. Supports "TCP",
+ "UDP", and "SCTP". Default is TCP.
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Number or name of the port to access on the pods
+ targeted by the service. Number must be in the range 1 to
+ 65535. Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ description: If specified, indicates the pod's priority. If not specified,
+ the pod priority will be default or zero if there is no default.
+ type: string
+ replicas:
+ description: Replicas is the number of pod instances for the underlying
+ OpenTelemetry Collector. Set this if your are not using autoscaling
+ format: int32
+ type: integer
+ resources:
+ description: Resources to set on the OpenTelemetry Collector 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."
+ 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.
+ type: object
+ type: object
+ securityContext:
+ description: SecurityContext configures the container security context
+ for the opentelemetry-collector container.
+ properties:
+ allowPrivilegeEscalation:
+ description: AllowPrivilegeEscalation controls whether a process
+ can gain more privileges than its parent process. This bool
+ directly controls if the no_new_privs flag will be set on the
+ container process.
+ type: boolean
+ capabilities:
+ description: The capabilities to add/drop when running containers.
+ Defaults to the default set of capabilities granted by the container
+ runtime. Note that this field cannot be set when spec.os.name
+ is windows.
+ properties:
+ add:
+ description: Added capabilities
+ items:
+ description: Capability represent POSIX capabilities type
+ type: string
+ type: array
+ drop:
+ description: Removed capabilities
+ items:
+ description: Capability represent POSIX capabilities type
+ type: string
+ type: array
+ type: object
+ privileged:
+ description: Run container in privileged mode. Processes in privileged
+ containers are essentially equivalent to root on the host. Defaults
+ to false. Note that this field cannot be set when spec.os.name
+ is windows.
+ type: boolean
+ procMount:
+ description: procMount denotes the type of proc mount to use for
+ the containers. The default is DefaultProcMount which uses the
+ container runtime defaults for readonly paths and masked paths.
+ type: string
+ readOnlyRootFilesystem:
+ description: Whether this container has a read-only root filesystem.
+ Default is false. Note that this field cannot be set when spec.os.name
+ is windows.
+ type: boolean
+ runAsGroup:
+ description: The GID to run the entrypoint of the container process.
+ Uses runtime default if unset. May also be set in PodSecurityContext.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: Indicates that the container must run as a non-root
+ user.
+ type: boolean
+ runAsUser:
+ description: The UID to run the entrypoint of the container process.
+ Defaults to user specified in image metadata if unspecified.
+ May also be set in PodSecurityContext.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: The SELinux context to be applied to the container.
+ If unspecified, the container runtime will allocate a random
+ SELinux context for each container. May also be set in PodSecurityContext.
+ properties:
+ level:
+ description: Level is SELinux level label that applies to
+ the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies to
+ the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies to
+ the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies to
+ the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: The seccomp options to use by this container. If
+ seccomp options are provided at both the pod & container level,
+ the container options override the pod options.
+ properties:
+ localhostProfile:
+ description: localhostProfile indicates a profile defined
+ in a file on the node should be used. The profile must be
+ preconfigured on the node to work.
+ type: string
+ type:
+ description: "type indicates which kind of seccomp profile
+ will be applied. Valid options are: \n Localhost - a profile
+ defined in a file on the node should be used."
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ description: The Windows specific settings applied to all containers.
+ If unspecified, the options from the PodSecurityContext will
+ be used.
+ properties:
+ gmsaCredentialSpec:
+ description: GMSACredentialSpec is where the GMSA admission
+ webhook (https://github.com/kubernetes-sigs/windows-gmsa)
+ inlines the contents of the GMSA credential spec named by
+ the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the GMSA
+ credential spec to use.
+ type: string
+ hostProcess:
+ description: HostProcess determines if a container should
+ be run as a 'Host Process' container.
+ type: boolean
+ runAsUserName:
+ description: The UserName in Windows to run the entrypoint
+ of the container process. Defaults to the user specified
+ in image metadata if unspecified. May also be set in PodSecurityContext.
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ description: ServiceAccount indicates the name of an existing service
+ account to use with this instance. When set, the operator will not
+ automatically create a ServiceAccount for the collector.
+ type: string
+ targetAllocator:
+ description: TargetAllocator indicates a value which determines whether
+ to spawn a target allocation resource or not.
+ properties:
+ affinity:
+ description: If specified, indicates the pod's scheduling constraints
+ properties:
+ nodeAffinity:
+ description: Describes node affinity scheduling rules for
+ the pod.
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods
+ to nodes that satisfy the affinity expressions specified
+ by this field, but it may choose a node that violates
+ one or more of the expressions.
+ items:
+ description: An empty preferred scheduling term matches
+ all objects with implicit weight 0 (i.e. it's a no-op).
+ A null preferred scheduling term matches no objects
+ (i.e. is also a no-op).
+ properties:
+ preference:
+ description: A node selector term, associated with
+ the corresponding weight.
+ properties:
+ matchExpressions:
+ description: A list of node selector requirements
+ by node's labels.
+ items:
+ description: A node selector requirement is
+ a selector that contains values, a key,
+ and an operator that relates the key and
+ values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ description: A list of node selector requirements
+ by node's fields.
+ items:
+ description: A node selector requirement is
+ a selector that contains values, a key,
+ and an operator that relates the key and
+ values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ description: Weight associated with matching the
+ corresponding nodeSelectorTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the affinity requirements specified by
+ this field are not met at scheduling time, the pod will
+ not be scheduled onto the node.
+ properties:
+ nodeSelectorTerms:
+ description: Required. A list of node selector terms.
+ The terms are ORed.
+ items:
+ description: A null or empty node selector term
+ matches no objects. The requirements of them are
+ ANDed. The TopologySelectorTerm type implements
+ a subset of the NodeSelectorTerm.
+ properties:
+ matchExpressions:
+ description: A list of node selector requirements
+ by node's labels.
+ items:
+ description: A node selector requirement is
+ a selector that contains values, a key,
+ and an operator that relates the key and
+ values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchFields:
+ description: A list of node selector requirements
+ by node's fields.
+ items:
+ description: A node selector requirement is
+ a selector that contains values, a key,
+ and an operator that relates the key and
+ values.
+ properties:
+ key:
+ description: The label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
+ type: string
+ values:
+ description: 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.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ description: Describes pod affinity scheduling rules (e.g.
+ co-locate this pod in the same node, zone, etc. as some
+ other pod(s)).
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods
+ to nodes that satisfy the affinity expressions specified
+ by this field, but it may choose a node that violates
+ one or more of the expressions.
+ items:
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
+ properties:
+ podAffinityTerm:
+ description: Required. A pod affinity term, associated
+ with the corresponding weight.
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by
+ this field and the ones listed in the namespaces
+ field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to.
+ The term is applied to the union of the namespaces
+ listed in this field and the ones selected
+ by namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector in
+ the specified namespaces, where co-located
+ is defined as running on a node whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ description: weight associated with matching the
+ corresponding podAffinityTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the affinity requirements specified by
+ this field are not met at scheduling time, the pod will
+ not be scheduled onto the node.
+ items:
+ description: Defines a set of pods (namely those matching
+ the labelSelector relative to the given namespace(s))
+ that this pod should be co-located (affinity) or not
+ co-located (anti-affinity) with, where co-locate
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by this
+ field and the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to. The
+ term is applied to the union of the namespaces
+ listed in this field and the ones selected by
+ namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods
+ matching the labelSelector in the specified namespaces,
+ where co-located is defined as running on a node
+ whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ podAntiAffinity:
+ description: Describes pod anti-affinity scheduling rules
+ (e.g. avoid putting this pod in the same node, zone, etc.
+ as some other pod(s)).
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ description: The scheduler will prefer to schedule pods
+ to nodes that satisfy the anti-affinity expressions
+ specified by this field, but it may choose a node that
+ violates one or more of the expressions.
+ items:
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
+ properties:
+ podAffinityTerm:
+ description: Required. A pod affinity term, associated
+ with the corresponding weight.
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by
+ this field and the ones listed in the namespaces
+ field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to.
+ The term is applied to the union of the namespaces
+ listed in this field and the ones selected
+ by namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector in
+ the specified namespaces, where co-located
+ is defined as running on a node whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ description: weight associated with matching the
+ corresponding podAffinityTerm, in the range 1-100.
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description: If the anti-affinity requirements specified
+ by this field are not met at scheduling time, the pod
+ will not be scheduled onto the node.
+ items:
+ description: Defines a set of pods (namely those matching
+ the labelSelector relative to the given namespace(s))
+ that this pod should be co-located (affinity) or not
+ co-located (anti-affinity) with, where co-locate
+ properties:
+ labelSelector:
+ description: A label query over a set of resources,
+ in this case pods.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaceSelector:
+ description: A label query over the set of namespaces
+ that the term applies to. The term is applied
+ to the union of the namespaces selected by this
+ field and the ones listed in the namespaces field.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ description: namespaces specifies a static list
+ of namespace names that the term applies to. The
+ term is applied to the union of the namespaces
+ listed in this field and the ones selected by
+ namespaceSelector.
+ items:
+ type: string
+ type: array
+ topologyKey:
+ description: 'This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the pods
+ matching the labelSelector in the specified namespaces,
+ where co-located is defined as running on a node
+ whose '
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ type: object
+ type: object
+ allocationStrategy:
+ description: AllocationStrategy determines which strategy the
+ target allocator should use for allocation. The current options
+ are least-weighted and consistent-hashing. The default option
+ is least-weighted
+ enum:
+ - least-weighted
+ - consistent-hashing
+ type: string
+ enabled:
+ description: Enabled indicates whether to use a target allocation
+ mechanism for Prometheus targets or not.
+ type: boolean
+ env:
+ description: ENV vars to set on the OpenTelemetry TargetAllocator's
+ Pods. These can then in certain cases be consumed in the config
+ file for the TargetAllocator.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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
+ filterStrategy:
+ description: FilterStrategy determines how to filter targets before
+ allocating them among the collectors. The only current option
+ is relabel-config (drops targets based on prom relabel_config).
+ type: string
+ image:
+ description: Image indicates the container image to use for the
+ OpenTelemetry TargetAllocator.
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description: NodeSelector to schedule OpenTelemetry TargetAllocator
+ pods.
+ type: object
+ prometheusCR:
+ description: PrometheusCR defines the configuration for the retrieval
+ of PrometheusOperator CRDs ( servicemonitor.monitoring.coreos.com/v1
+ and podmonitor.monitoring.coreos.com/v1 ) retrieval.
+ properties:
+ enabled:
+ description: Enabled indicates whether to use a PrometheusOperator
+ custom resources as targets or not.
+ type: boolean
+ podMonitorSelector:
+ additionalProperties:
+ type: string
+ description: PodMonitors to be selected for target discovery.
+ This is a map of {key,value} pairs. Each {key,value} in
+ the map is going to exactly match a label in a PodMonitor's
+ meta labels.
+ type: object
+ scrapeInterval:
+ default: 30s
+ description: "Interval between consecutive scrapes. Equivalent
+ to the same setting on the Prometheus CRD. \n Default: \"30s\""
+ format: duration
+ type: string
+ serviceMonitorSelector:
+ additionalProperties:
+ type: string
+ description: ServiceMonitors to be selected for target discovery.
+ This is a map of {key,value} pairs. Each {key,value} in
+ the map is going to exactly match a label in a ServiceMonitor's
+ meta labels.
+ type: object
+ type: object
+ replicas:
+ description: Replicas is the number of pod instances for the underlying
+ TargetAllocator. This should only be set to a value other than
+ 1 if a strategy that allows for high availability is chosen.
+ format: int32
+ type: integer
+ resources:
+ description: Resources to set on the OpenTelemetryTargetAllocator
+ 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."
+ 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.
+ type: object
+ type: object
+ serviceAccount:
+ description: ServiceAccount indicates the name of an existing
+ service account to use with this instance. When set, the operator
+ will not automatically create a ServiceAccount for the TargetAllocator.
+ type: string
+ tolerations:
+ description: Toleration embedded kubernetes pod configuration
+ option, controls how pods can be scheduled with matching taints
+ items:
+ description: The pod this Toleration is attached to tolerates
+ any taint that matches the triple using
+ the matching operator .
+ properties:
+ effect:
+ description: Effect indicates the taint effect to match.
+ Empty means match all taint effects. When specified, allowed
+ values are NoSchedule, PreferNoSchedule and NoExecute.
+ type: string
+ key:
+ description: Key is the taint key that the toleration applies
+ to. Empty means match all taint keys. If the key is empty,
+ operator must be Exists; this combination means to match
+ all values and all keys.
+ type: string
+ operator:
+ description: Operator represents a key's relationship to
+ the value. Valid operators are Exists and Equal. Defaults
+ to Equal.
+ 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.
+ 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: TopologySpreadConstraints embedded kubernetes pod
+ configuration option, controls how pods are spread across your
+ cluster among failure-domains such as regions, zones, nodes,
+ and other user-defined top
+ 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.
+ 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.
+ 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.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ description: MaxSkew describes the degree to which pods
+ may be unevenly distributed.
+ format: int32
+ type: integer
+ minDomains:
+ description: MinDomains indicates a minimum number of eligible
+ domains.
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ description: NodeAffinityPolicy indicates how we will treat
+ Pod's nodeAffinity/nodeSelector when calculating pod topology
+ spread skew.
+ type: string
+ nodeTaintsPolicy:
+ description: NodeTaintsPolicy indicates how we will treat
+ node taints when calculating pod topology spread skew.
+ 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.
+ 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.
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ type: object
+ terminationGracePeriodSeconds:
+ description: Duration in seconds the pod needs to terminate gracefully
+ upon probe failure.
+ format: int64
+ type: integer
+ tolerations:
+ description: Toleration to schedule OpenTelemetry Collector pods.
+ This is only relevant to daemonset, statefulset, and deployment
+ mode
+ items:
+ description: The pod this Toleration is attached to tolerates any
+ taint that matches the triple using the matching
+ operator .
+ properties:
+ effect:
+ description: Effect indicates the taint effect to match. Empty
+ means match all taint effects. When specified, allowed values
+ are NoSchedule, PreferNoSchedule and NoExecute.
+ type: string
+ key:
+ description: Key is the taint key that the toleration applies
+ to. Empty means match all taint keys. If the key is empty,
+ operator must be Exists; this combination means to match all
+ values and all keys.
+ type: string
+ operator:
+ description: Operator represents a key's relationship to the
+ value. Valid operators are Exists and Equal. Defaults to Equal.
+ 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.
+ 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: TopologySpreadConstraints embedded kubernetes pod configuration
+ option, controls how pods are spread across your cluster among failure-domains
+ such as regions, zones, nodes, and other user-defined top
+ 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.
+ 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.
+ 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.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ description: MaxSkew describes the degree to which pods may
+ be unevenly distributed.
+ format: int32
+ type: integer
+ minDomains:
+ description: MinDomains indicates a minimum number of eligible
+ domains.
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ description: NodeAffinityPolicy indicates how we will treat
+ Pod's nodeAffinity/nodeSelector when calculating pod topology
+ spread skew.
+ type: string
+ nodeTaintsPolicy:
+ description: NodeTaintsPolicy indicates how we will treat node
+ taints when calculating pod topology spread skew.
+ 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.
+ 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.
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ updateStrategy:
+ description: UpdateStrategy represents the strategy the operator will
+ take replacing existing DaemonSet pods with new pods https://kubernetes.
+ properties:
+ rollingUpdate:
+ description: 'Rolling update config params. Present only if type
+ = "RollingUpdate". --- TODO: Update this to follow our convention
+ for oneOf, whatever we decide it to be. Same as Deployment `strategy.'
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ description: The maximum number of nodes with an existing
+ available DaemonSet pod that can have an updated DaemonSet
+ pod during during an update.
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ description: The maximum number of DaemonSet pods that can
+ be unavailable during the update.
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ description: Type of daemon set update. Can be "RollingUpdate"
+ or "OnDelete". Default is RollingUpdate.
+ type: string
+ type: object
+ upgradeStrategy:
+ description: UpgradeStrategy represents how the operator will handle
+ upgrades to the CR when a newer version of the operator is deployed
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeClaimTemplates:
+ description: VolumeClaimTemplates will provide stable storage using
+ PersistentVolumes. Only available when the mode=statefulset.
+ items:
+ description: PersistentVolumeClaim is a user's request for and claim
+ to a persistent volume
+ 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.
+ 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.
+ type: string
+ metadata:
+ description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ description: 'spec defines the desired characteristics of a
+ volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
+ properties:
+ accessModes:
+ description: 'accessModes contains the desired access modes
+ the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
+ items:
+ type: string
+ type: array
+ dataSource:
+ description: 'dataSource field can be used to specify either:
+ * An existing VolumeSnapshot object (snapshot.storage.k8s.'
+ properties:
+ apiGroup:
+ description: APIGroup is the group for the resource
+ being referenced. If APIGroup is not specified, the
+ specified Kind must be in the core API group. For
+ any other third-party types, APIGroup is required.
+ type: string
+ kind:
+ description: Kind is the type of resource being referenced
+ type: string
+ name:
+ description: Name is the name of resource being referenced
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ description: dataSourceRef specifies the object from which
+ to populate the volume with data, if a non-empty volume
+ is desired.
+ properties:
+ apiGroup:
+ description: APIGroup is the group for the resource
+ being referenced. If APIGroup is not specified, the
+ specified Kind must be in the core API group. For
+ any other third-party types, APIGroup is required.
+ type: string
+ kind:
+ description: Kind is the type of resource being referenced
+ type: string
+ name:
+ description: Name is the name of resource being referenced
+ type: string
+ namespace:
+ description: Namespace is the namespace of resource
+ being referenced Note that when a namespace is specified,
+ a gateway.networking.k8s.
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ description: resources represents the minimum resources
+ the volume should have.
+ 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."
+ 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.
+ type: object
+ type: object
+ selector:
+ description: selector is a label query over volumes to consider
+ for binding.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ description: 'storageClassName is the name of the StorageClass
+ required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
+ type: string
+ volumeMode:
+ description: volumeMode defines what type of volume is required
+ by the claim. Value of Filesystem is implied when not
+ included in claim spec.
+ type: string
+ volumeName:
+ description: volumeName is the binding reference to the
+ PersistentVolume backing this claim.
+ type: string
+ type: object
+ status:
+ description: 'status represents the current information/status
+ of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
+ properties:
+ accessModes:
+ description: 'accessModes contains the actual access modes
+ the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
+ items:
+ type: string
+ type: array
+ allocatedResourceStatuses:
+ additionalProperties:
+ description: When a controller receives persistentvolume
+ claim update with ClaimResourceStatus for a resource
+ that it does not recognizes, then it should ignore that
+ update and let other controllers handle it.
+ type: string
+ description: allocatedResourceStatuses stores status of
+ resource being resized for the given PVC. Key names follow
+ standard Kubernetes label syntax.
+ type: object
+ x-kubernetes-map-type: granular
+ allocatedResources:
+ 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: allocatedResources tracks the resources allocated
+ to a PVC including its capacity. Key names follow standard
+ Kubernetes label syntax.
+ type: object
+ capacity:
+ 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: capacity represents the actual resources of
+ the underlying volume.
+ type: object
+ conditions:
+ description: conditions is the current Condition of persistent
+ volume claim. If underlying persistent volume is being
+ resized then the Condition will be set to 'ResizeStarted'.
+ items:
+ description: PersistentVolumeClaimCondition contains details
+ about state of pvc
+ properties:
+ lastProbeTime:
+ description: lastProbeTime is the time we probed the
+ condition.
+ format: date-time
+ type: string
+ lastTransitionTime:
+ description: lastTransitionTime is the time the condition
+ transitioned from one status to another.
+ format: date-time
+ type: string
+ message:
+ description: message is the human-readable message
+ indicating details about last transition.
+ type: string
+ reason:
+ description: reason is a unique, this should be a
+ short, machine understandable string that gives
+ the reason for condition's last transition.
+ type: string
+ status:
+ type: string
+ type:
+ description: PersistentVolumeClaimConditionType is
+ a valid value of PersistentVolumeClaimCondition.Type
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ phase:
+ description: phase represents the current phase of PersistentVolumeClaim.
+ type: string
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumeMounts:
+ description: VolumeMounts represents the mount points to use in the
+ underlying collector deployment(s)
+ items:
+ description: VolumeMount describes a mounting of a Volume within
+ a container.
+ properties:
+ mountPath:
+ description: Path within the container at which the volume should
+ be mounted. Must not contain ':'.
+ type: string
+ mountPropagation:
+ description: mountPropagation determines how mounts are propagated
+ from the host to container and the other way around. When
+ not set, MountPropagationNone is used. This field is beta
+ in 1.10.
+ type: string
+ name:
+ description: This must match the Name of a Volume.
+ type: string
+ readOnly:
+ description: Mounted read-only if true, read-write otherwise
+ (false or unspecified). Defaults to false.
+ type: boolean
+ subPath:
+ description: Path within the volume from which the container's
+ volume should be mounted. Defaults to "" (volume's root).
+ type: string
+ subPathExpr:
+ description: Expanded path within the volume from which the
+ container's volume should be mounted.
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ description: Volumes represents which volumes to use in the underlying
+ collector deployment(s).
+ items:
+ description: Volume represents a named volume in a pod that may
+ be accessed by any container in the pod.
+ properties:
+ awsElasticBlockStore:
+ description: 'awsElasticBlockStore represents an AWS Disk resource
+ that is attached to a kubelet''s host machine and then exposed
+ to the pod. More info: https://kubernetes.'
+ properties:
+ fsType:
+ description: 'fsType is the filesystem type of the volume
+ that you want to mount. Tip: Ensure that the filesystem
+ type is supported by the host operating system. Examples:
+ "ext4", "xfs", "ntfs".'
+ type: string
+ partition:
+ description: 'partition is the partition in the volume that
+ you want to mount. If omitted, the default is to mount
+ by volume name. Examples: For volume /dev/sda1, you specify
+ the partition as "1".'
+ format: int32
+ type: integer
+ readOnly:
+ description: 'readOnly value true will force the readOnly
+ setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
+ type: boolean
+ volumeID:
+ description: 'volumeID is unique ID of the persistent disk
+ resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ description: azureDisk represents an Azure Data Disk mount on
+ the host and bind mount to the pod.
+ properties:
+ cachingMode:
+ description: 'cachingMode is the Host Caching mode: None,
+ Read Only, Read Write.'
+ type: string
+ diskName:
+ description: diskName is the Name of the data disk in the
+ blob storage
+ type: string
+ diskURI:
+ description: diskURI is the URI of data disk in the blob
+ storage
+ type: string
+ fsType:
+ description: fsType is Filesystem type to mount. Must be
+ a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ kind:
+ description: 'kind expected values are Shared: multiple
+ blob disks per storage account Dedicated: single blob
+ disk per storage account Managed: azure managed data
+ disk (only in managed availability set).'
+ type: string
+ readOnly:
+ description: readOnly Defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ description: azureFile represents an Azure File Service mount
+ on the host and bind mount to the pod.
+ properties:
+ readOnly:
+ description: readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ secretName:
+ description: secretName is the name of secret that contains
+ Azure Storage Account Name and Key
+ type: string
+ shareName:
+ description: shareName is the azure share Name
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ description: cephFS represents a Ceph FS mount on the host that
+ shares a pod's lifetime
+ properties:
+ monitors:
+ description: 'monitors is Required: Monitors is a collection
+ of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ items:
+ type: string
+ type: array
+ path:
+ description: 'path is Optional: Used as the mounted root,
+ rather than the full Ceph tree, default is /'
+ type: string
+ readOnly:
+ description: 'readOnly is Optional: Defaults to false (read/write).
+ ReadOnly here will force the ReadOnly setting in VolumeMounts.
+ More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ type: boolean
+ secretFile:
+ description: 'secretFile is Optional: SecretFile is the
+ path to key ring for User, default is /etc/ceph/user.secret
+ More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ type: string
+ secretRef:
+ description: 'secretRef is Optional: SecretRef is reference
+ to the authentication secret for User, default is empty.
+ More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ description: 'user is optional: User is the rados user name,
+ default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ description: 'cinder represents a cinder volume attached and
+ mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
+ properties:
+ fsType:
+ description: 'fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Examples: "ext4", "xfs", "ntfs". Implicitly inferred to
+ be "ext4" if unspecified.'
+ type: string
+ readOnly:
+ description: 'readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
+ type: boolean
+ secretRef:
+ description: 'secretRef is optional: points to a secret
+ object containing parameters used to connect to OpenStack.'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ description: 'volumeID used to identify the volume in cinder.
+ More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ description: configMap represents a configMap that should populate
+ this volume
+ properties:
+ defaultMode:
+ description: 'defaultMode is optional: mode bits used to
+ set permissions on created files by default. Must be an
+ octal value between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ items:
+ description: items if unspecified, each key-value pair in
+ the Data field of the referenced ConfigMap will be projected
+ into the volume as a file whose name is the key and content
+ is the value.
+ items:
+ description: Maps a string key to a path within a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits used to
+ set permissions on this file. Must be an octal value
+ between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of the file
+ to map the key to. May not be an absolute path.
+ May not contain the path element '..'. May not start
+ with the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ 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: optional specify whether the ConfigMap or its
+ keys must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ description: csi (Container Storage Interface) represents ephemeral
+ storage that is handled by certain external CSI drivers (Beta
+ feature).
+ properties:
+ driver:
+ description: driver is the name of the CSI driver that handles
+ this volume. Consult with your admin for the correct name
+ as registered in the cluster.
+ type: string
+ fsType:
+ description: fsType to mount. Ex. "ext4", "xfs", "ntfs".
+ If not provided, the empty value is passed to the associated
+ CSI driver which will determine the default filesystem
+ to apply.
+ type: string
+ nodePublishSecretRef:
+ description: nodePublishSecretRef is a reference to the
+ secret object containing sensitive information to pass
+ to the CSI driver to complete the CSI NodePublishVolume
+ and NodeUnpublishVolume calls.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ description: readOnly specifies a read-only configuration
+ for the volume. Defaults to false (read/write).
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ description: volumeAttributes stores driver-specific properties
+ that are passed to the CSI driver. Consult your driver's
+ documentation for supported values.
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ description: downwardAPI represents downward API about the pod
+ that should populate this volume
+ properties:
+ defaultMode:
+ description: 'Optional: mode bits to use on created files
+ by default. Must be a Optional: mode bits used to set
+ permissions on created files by default.'
+ format: int32
+ type: integer
+ items:
+ description: Items is a list of downward API volume file
+ items:
+ description: DownwardAPIVolumeFile represents information
+ to create the file containing the pod field
+ properties:
+ fieldRef:
+ description: 'Required: Selects a field of the pod:
+ only annotations, labels, name and namespace are
+ supported.'
+ 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
+ mode:
+ description: 'Optional: mode bits used to set permissions
+ on this file, must be an octal value between 0000
+ and 0777 or a decimal value between 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: 'Required: Path is the relative path
+ name of the file to be created. Must not be absolute
+ or contain the ''..'' path. Must be utf-8 encoded.
+ The first item of the relative path must not start
+ with ''..'''
+ type: string
+ resourceFieldRef:
+ description: 'Selects a resource of the container:
+ only resources limits and requests (limits.cpu,
+ limits.memory, requests.cpu and requests.memory)
+ 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
+ required:
+ - path
+ type: object
+ type: array
+ type: object
+ emptyDir:
+ description: 'emptyDir represents a temporary directory that
+ shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
+ properties:
+ medium:
+ description: medium represents what type of storage medium
+ should back this directory. The default is "" which means
+ to use the node's default medium. Must be an empty string
+ (default) or Memory.
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ description: sizeLimit is the total amount of local storage
+ required for this EmptyDir volume. The size limit is also
+ applicable for memory medium.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ description: ephemeral represents a volume that is handled by
+ a cluster storage driver.
+ properties:
+ volumeClaimTemplate:
+ description: Will be used to create a stand-alone PVC to
+ provision the volume. The pod in which this EphemeralVolumeSource
+ is embedded will be the owner of the PVC, i.e.
+ properties:
+ metadata:
+ description: May contain labels and annotations that
+ will be copied into the PVC when creating it. No other
+ fields are allowed and will be rejected during validation.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ description: The specification for the PersistentVolumeClaim.
+ The entire content is copied unchanged into the PVC
+ that gets created from this template.
+ properties:
+ accessModes:
+ description: 'accessModes contains the desired access
+ modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
+ items:
+ type: string
+ type: array
+ dataSource:
+ description: 'dataSource field can be used to specify
+ either: * An existing VolumeSnapshot object (snapshot.storage.k8s.'
+ properties:
+ apiGroup:
+ description: APIGroup is the group for the resource
+ being referenced. If APIGroup is not specified,
+ the specified Kind must be in the core API
+ group. For any other third-party types, APIGroup
+ is required.
+ type: string
+ kind:
+ description: Kind is the type of resource being
+ referenced
+ type: string
+ name:
+ description: Name is the name of resource being
+ referenced
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ description: dataSourceRef specifies the object
+ from which to populate the volume with data, if
+ a non-empty volume is desired.
+ properties:
+ apiGroup:
+ description: APIGroup is the group for the resource
+ being referenced. If APIGroup is not specified,
+ the specified Kind must be in the core API
+ group. For any other third-party types, APIGroup
+ is required.
+ type: string
+ kind:
+ description: Kind is the type of resource being
+ referenced
+ type: string
+ name:
+ description: Name is the name of resource being
+ referenced
+ type: string
+ namespace:
+ description: Namespace is the namespace of resource
+ being referenced Note that when a namespace
+ is specified, a gateway.networking.k8s.
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ description: resources represents the minimum resources
+ the volume should have.
+ 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."
+ 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.
+ type: object
+ type: object
+ selector:
+ description: selector is a label query over volumes
+ to consider for binding.
+ 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.
+ 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.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ description: 'storageClassName is the name of the
+ StorageClass required by the claim. More info:
+ https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
+ type: string
+ volumeMode:
+ description: volumeMode defines what type of volume
+ is required by the claim. Value of Filesystem
+ is implied when not included in claim spec.
+ type: string
+ volumeName:
+ description: volumeName is the binding reference
+ to the PersistentVolume backing this claim.
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ description: fc represents a Fibre Channel resource that is
+ attached to a kubelet's host machine and then exposed to the
+ pod.
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ lun:
+ description: 'lun is Optional: FC target lun number'
+ format: int32
+ type: integer
+ readOnly:
+ description: 'readOnly is Optional: Defaults to false (read/write).
+ ReadOnly here will force the ReadOnly setting in VolumeMounts.'
+ type: boolean
+ targetWWNs:
+ description: 'targetWWNs is Optional: FC target worldwide
+ names (WWNs)'
+ items:
+ type: string
+ type: array
+ wwids:
+ description: 'wwids Optional: FC volume world wide identifiers
+ (wwids) Either wwids or combination of targetWWNs and
+ lun must be set, but not both simultaneously.'
+ items:
+ type: string
+ type: array
+ type: object
+ flexVolume:
+ description: flexVolume represents a generic volume resource
+ that is provisioned/attached using an exec based plugin.
+ properties:
+ driver:
+ description: driver is the name of the driver to use for
+ this volume.
+ type: string
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". The default filesystem depends
+ on FlexVolume script.
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ description: 'options is Optional: this field holds extra
+ command options if any.'
+ type: object
+ readOnly:
+ description: 'readOnly is Optional: defaults to false (read/write).
+ ReadOnly here will force the ReadOnly setting in VolumeMounts.'
+ type: boolean
+ secretRef:
+ description: 'secretRef is Optional: secretRef is reference
+ to the secret object containing sensitive information
+ to pass to the plugin scripts. This may be empty if no
+ secret object is specified.'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ description: flocker represents a Flocker volume attached to
+ a kubelet's host machine. This depends on the Flocker control
+ service being running
+ properties:
+ datasetName:
+ description: datasetName is Name of the dataset stored as
+ metadata -> name on the dataset for Flocker should be
+ considered as deprecated
+ type: string
+ datasetUUID:
+ description: datasetUUID is the UUID of the dataset. This
+ is unique identifier of a Flocker dataset
+ type: string
+ type: object
+ gcePersistentDisk:
+ description: 'gcePersistentDisk represents a GCE Disk resource
+ that is attached to a kubelet''s host machine and then exposed
+ to the pod. More info: https://kubernetes.'
+ properties:
+ fsType:
+ description: 'fsType is filesystem type of the volume that
+ you want to mount. Tip: Ensure that the filesystem type
+ is supported by the host operating system. Examples: "ext4",
+ "xfs", "ntfs".'
+ type: string
+ partition:
+ description: 'partition is the partition in the volume that
+ you want to mount. If omitted, the default is to mount
+ by volume name. Examples: For volume /dev/sda1, you specify
+ the partition as "1".'
+ format: int32
+ type: integer
+ pdName:
+ description: 'pdName is unique name of the PD resource in
+ GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the ReadOnly setting
+ in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ description: 'gitRepo represents a git repository at a particular
+ revision. DEPRECATED: GitRepo is deprecated.'
+ properties:
+ directory:
+ description: directory is the target directory name. Must
+ not contain or start with '..'. If '.' is supplied, the
+ volume directory will be the git repository.
+ type: string
+ repository:
+ description: repository is the URL
+ type: string
+ revision:
+ description: revision is the commit hash for the specified
+ revision.
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ description: 'glusterfs represents a Glusterfs mount on the
+ host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
+ properties:
+ endpoints:
+ description: 'endpoints is the endpoint name that details
+ Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
+ type: string
+ path:
+ description: 'path is the Glusterfs volume path. More info:
+ https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the Glusterfs volume
+ to be mounted with read-only permissions. Defaults to
+ false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ description: hostPath represents a pre-existing file or directory
+ on the host machine that is directly exposed to the container.
+ properties:
+ path:
+ description: 'path of the directory on the host. If the
+ path is a symlink, it will follow the link to the real
+ path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
+ type: string
+ type:
+ description: 'type for HostPath Volume Defaults to "" More
+ info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
+ type: string
+ required:
+ - path
+ type: object
+ iscsi:
+ description: 'iscsi represents an ISCSI Disk resource that is
+ attached to a kubelet''s host machine and then exposed to
+ the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
+ properties:
+ chapAuthDiscovery:
+ description: chapAuthDiscovery defines whether support iSCSI
+ Discovery CHAP authentication
+ type: boolean
+ chapAuthSession:
+ description: chapAuthSession defines whether support iSCSI
+ Session CHAP authentication
+ type: boolean
+ fsType:
+ description: 'fsType is the filesystem type of the volume
+ that you want to mount. Tip: Ensure that the filesystem
+ type is supported by the host operating system. Examples:
+ "ext4", "xfs", "ntfs".'
+ type: string
+ initiatorName:
+ description: initiatorName is the custom iSCSI Initiator
+ Name.
+ type: string
+ iqn:
+ description: iqn is the target iSCSI Qualified Name.
+ type: string
+ iscsiInterface:
+ description: iscsiInterface is the interface Name that uses
+ an iSCSI transport. Defaults to 'default' (tcp).
+ type: string
+ lun:
+ description: lun represents iSCSI Target Lun number.
+ format: int32
+ type: integer
+ portals:
+ description: portals is the iSCSI Target Portal List. The
+ portal is either an IP or ip_addr:port if the port is
+ other than default (typically TCP ports 860 and 3260).
+ items:
+ type: string
+ type: array
+ readOnly:
+ description: readOnly here will force the ReadOnly setting
+ in VolumeMounts. Defaults to false.
+ type: boolean
+ secretRef:
+ description: secretRef is the CHAP Secret for iSCSI target
+ and initiator authentication
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ description: targetPortal is iSCSI Target Portal. The Portal
+ is either an IP or ip_addr:port if the port is other than
+ default (typically TCP ports 860 and 3260).
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ description: 'name of the volume. Must be a DNS_LABEL and unique
+ within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
+ type: string
+ nfs:
+ description: 'nfs represents an NFS mount on the host that shares
+ a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ properties:
+ path:
+ description: 'path that is exported by the NFS server. More
+ info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the NFS export to
+ be mounted with read-only permissions. Defaults to false.
+ More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ type: boolean
+ server:
+ description: 'server is the hostname or IP address of the
+ NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ description: 'persistentVolumeClaimVolumeSource represents a
+ reference to a PersistentVolumeClaim in the same namespace.
+ More info: https://kubernetes.'
+ properties:
+ claimName:
+ description: 'claimName is the name of a PersistentVolumeClaim
+ in the same namespace as the pod using this volume. More
+ info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
+ type: string
+ readOnly:
+ description: readOnly Will force the ReadOnly setting in
+ VolumeMounts. Default false.
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ description: photonPersistentDisk represents a PhotonController
+ persistent disk attached and mounted on kubelets host machine
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ pdID:
+ description: pdID is the ID that identifies Photon Controller
+ persistent disk
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ description: portworxVolume represents a portworx volume attached
+ and mounted on kubelets host machine
+ properties:
+ fsType:
+ description: fSType represents the filesystem type to mount
+ Must be a filesystem type supported by the host operating
+ system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ readOnly:
+ description: readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ volumeID:
+ description: volumeID uniquely identifies a Portworx volume
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ description: projected items for all in one resources secrets,
+ configmaps, and downward API
+ properties:
+ defaultMode:
+ description: defaultMode are the mode bits used to set permissions
+ on created files by default. Must be an octal value between
+ 0000 and 0777 or a decimal value between 0 and 511.
+ format: int32
+ type: integer
+ sources:
+ description: sources is the list of volume projections
+ items:
+ description: Projection that may be projected along with
+ other supported volume types
+ properties:
+ configMap:
+ description: configMap information about the configMap
+ data to project
+ properties:
+ items:
+ description: items if unspecified, each key-value
+ pair in the Data field of the referenced ConfigMap
+ will be projected into the volume as a file
+ whose name is the key and content is the value.
+ items:
+ description: Maps a string key to a path within
+ a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits
+ used to set permissions on this file.
+ Must be an octal value between 0000 and
+ 0777 or a decimal value between 0 and
+ 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of
+ the file to map the key to. May not be
+ an absolute path. May not contain the
+ path element '..'. May not start with
+ the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ 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: optional specify whether the ConfigMap
+ or its keys must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ description: downwardAPI information about the downwardAPI
+ data to project
+ properties:
+ items:
+ description: Items is a list of DownwardAPIVolume
+ file
+ items:
+ description: DownwardAPIVolumeFile represents
+ information to create the file containing
+ the pod field
+ properties:
+ fieldRef:
+ description: 'Required: Selects a field
+ of the pod: only annotations, labels,
+ name and namespace are supported.'
+ 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
+ mode:
+ description: 'Optional: mode bits used to
+ set permissions on this file, must be
+ an octal value between 0000 and 0777 or
+ a decimal value between 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: 'Required: Path is the relative
+ path name of the file to be created. Must
+ not be absolute or contain the ''..''
+ path. Must be utf-8 encoded. The first
+ item of the relative path must not start
+ with ''..'''
+ type: string
+ resourceFieldRef:
+ description: 'Selects a resource of the
+ container: only resources limits and requests
+ (limits.cpu, limits.memory, requests.cpu
+ and requests.memory) 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
+ required:
+ - path
+ type: object
+ type: array
+ type: object
+ secret:
+ description: secret information about the secret data
+ to project
+ properties:
+ items:
+ description: items if unspecified, each key-value
+ pair in the Data field of the referenced Secret
+ will be projected into the volume as a file
+ whose name is the key and content is the value.
+ items:
+ description: Maps a string key to a path within
+ a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits
+ used to set permissions on this file.
+ Must be an octal value between 0000 and
+ 0777 or a decimal value between 0 and
+ 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of
+ the file to map the key to. May not be
+ an absolute path. May not contain the
+ path element '..'. May not start with
+ the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ 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: optional field specify whether the
+ Secret or its key must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ description: serviceAccountToken is information about
+ the serviceAccountToken data to project
+ properties:
+ audience:
+ description: audience is the intended audience
+ of the token. A recipient of a token must identify
+ itself with an identifier specified in the audience
+ of the token, and otherwise should reject the
+ token.
+ type: string
+ expirationSeconds:
+ description: expirationSeconds is the requested
+ duration of validity of the service account
+ token. As the token approaches expiration, the
+ kubelet volume plugin will proactively rotate
+ the service account token.
+ format: int64
+ type: integer
+ path:
+ description: path is the path relative to the
+ mount point of the file to project the token
+ into.
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ type: object
+ quobyte:
+ description: quobyte represents a Quobyte mount on the host
+ that shares a pod's lifetime
+ properties:
+ group:
+ description: group to map volume access to Default is no
+ group
+ type: string
+ readOnly:
+ description: readOnly here will force the Quobyte volume
+ to be mounted with read-only permissions. Defaults to
+ false.
+ type: boolean
+ registry:
+ description: registry represents a single or multiple Quobyte
+ Registry services specified as a string as host:port pair
+ (multiple entries are separated with commas) which acts
+ as the central registry for volumes
+ type: string
+ tenant:
+ description: tenant owning the given Quobyte volume in the
+ Backend Used with dynamically provisioned Quobyte volumes,
+ value is set by the plugin
+ type: string
+ user:
+ description: user to map volume access to Defaults to serivceaccount
+ user
+ type: string
+ volume:
+ description: volume is a string that references an already
+ created Quobyte volume by name.
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ description: 'rbd represents a Rados Block Device mount on the
+ host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
+ properties:
+ fsType:
+ description: 'fsType is the filesystem type of the volume
+ that you want to mount. Tip: Ensure that the filesystem
+ type is supported by the host operating system. Examples:
+ "ext4", "xfs", "ntfs".'
+ type: string
+ image:
+ description: 'image is the rados image name. More info:
+ https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ keyring:
+ description: 'keyring is the path to key ring for RBDUser.
+ Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ monitors:
+ description: 'monitors is a collection of Ceph monitors.
+ More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ items:
+ type: string
+ type: array
+ pool:
+ description: 'pool is the rados pool name. Default is rbd.
+ More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ readOnly:
+ description: 'readOnly here will force the ReadOnly setting
+ in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: boolean
+ secretRef:
+ description: 'secretRef is name of the authentication secret
+ for RBDUser. If provided overrides keyring. Default is
+ nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ description: 'user is the rados user name. Default is admin.
+ More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ description: scaleIO represents a ScaleIO persistent volume
+ attached and mounted on Kubernetes nodes.
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Default is "xfs".
+ type: string
+ gateway:
+ description: gateway is the host address of the ScaleIO
+ API Gateway.
+ type: string
+ protectionDomain:
+ description: protectionDomain is the name of the ScaleIO
+ Protection Domain for the configured storage.
+ type: string
+ readOnly:
+ description: readOnly Defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ secretRef:
+ description: secretRef references to the secret for ScaleIO
+ user and other sensitive information. If this is not provided,
+ Login operation will fail.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ description: sslEnabled Flag enable/disable SSL communication
+ with Gateway, default false
+ type: boolean
+ storageMode:
+ description: storageMode indicates whether the storage for
+ a volume should be ThickProvisioned or ThinProvisioned.
+ Default is ThinProvisioned.
+ type: string
+ storagePool:
+ description: storagePool is the ScaleIO Storage Pool associated
+ with the protection domain.
+ type: string
+ system:
+ description: system is the name of the storage system as
+ configured in ScaleIO.
+ type: string
+ volumeName:
+ description: volumeName is the name of a volume already
+ created in the ScaleIO system that is associated with
+ this volume source.
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ description: 'secret represents a secret that should populate
+ this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
+ properties:
+ defaultMode:
+ description: 'defaultMode is Optional: mode bits used to
+ set permissions on created files by default. Must be an
+ octal value between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ items:
+ description: items If unspecified, each key-value pair in
+ the Data field of the referenced Secret will be projected
+ into the volume as a file whose name is the key and content
+ is the value.
+ items:
+ description: Maps a string key to a path within a volume.
+ properties:
+ key:
+ description: key is the key to project.
+ type: string
+ mode:
+ description: 'mode is Optional: mode bits used to
+ set permissions on this file. Must be an octal value
+ between 0000 and 0777 or a decimal value between
+ 0 and 511.'
+ format: int32
+ type: integer
+ path:
+ description: path is the relative path of the file
+ to map the key to. May not be an absolute path.
+ May not contain the path element '..'. May not start
+ with the string '..'.
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ optional:
+ description: optional field specify whether the Secret or
+ its keys must be defined
+ type: boolean
+ secretName:
+ description: 'secretName is the name of the secret in the
+ pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
+ type: string
+ type: object
+ storageos:
+ description: storageOS represents a StorageOS volume attached
+ and mounted on Kubernetes nodes.
+ properties:
+ fsType:
+ description: fsType is the filesystem type to mount. Must
+ be a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ readOnly:
+ description: readOnly defaults to false (read/write). ReadOnly
+ here will force the ReadOnly setting in VolumeMounts.
+ type: boolean
+ secretRef:
+ description: secretRef specifies the secret to use for obtaining
+ the StorageOS API credentials. If not specified, default
+ values will be attempted.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ description: volumeName is the human-readable name of the
+ StorageOS volume. Volume names are only unique within
+ a namespace.
+ type: string
+ volumeNamespace:
+ description: volumeNamespace specifies the scope of the
+ volume within StorageOS. If no namespace is specified
+ then the Pod's namespace will be used.
+ type: string
+ type: object
+ vsphereVolume:
+ description: vsphereVolume represents a vSphere volume attached
+ and mounted on kubelets host machine
+ properties:
+ fsType:
+ description: fsType is filesystem type to mount. Must be
+ a filesystem type supported by the host operating system.
+ Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
+ if unspecified.
+ type: string
+ storagePolicyID:
+ description: storagePolicyID is the storage Policy Based
+ Management (SPBM) profile ID associated with the StoragePolicyName.
+ type: string
+ storagePolicyName:
+ description: storagePolicyName is the storage Policy Based
+ Management (SPBM) profile name.
+ type: string
+ volumePath:
+ description: volumePath is the path that identifies vSphere
+ volume vmdk
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ status:
+ description: OpenTelemetryCollectorStatus defines the observed state of
+ OpenTelemetryCollector.
+ properties:
+ image:
+ description: Image indicates the container image to use for the OpenTelemetry
+ Collector.
+ type: string
+ messages:
+ description: 'Messages about actions performed by the operator on
+ this resource. Deprecated: use Kubernetes events instead.'
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ replicas:
+ description: 'Replicas is currently not being set and might be removed
+ in the next version. Deprecated: use "OpenTelemetryCollector.Status.Scale.Replicas"
+ instead.'
+ format: int32
+ type: integer
+ scale:
+ description: Scale is the OpenTelemetryCollector's scale subresource
+ status.
+ properties:
+ replicas:
+ description: The total number non-terminated pods targeted by
+ this OpenTelemetryCollector's deployment or statefulSet.
+ format: int32
+ type: integer
+ selector:
+ description: The selector used to match the OpenTelemetryCollector's
+ deployment or statefulSet pods.
+ type: string
+ statusReplicas:
+ description: StatusReplicas is the number of pods targeted by
+ this OpenTelemetryCollector's with a Ready Condition / Total
+ number of non-terminated pods targeted by this OpenTelemetryCollector's
+ (their labels matc
+ type: string
+ type: object
+ version:
+ description: Version of the managed OpenTelemetry Collector (operand)
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ scale:
+ labelSelectorPath: .status.scale.selector
+ specReplicasPath: .spec.replicas
+ statusReplicasPath: .status.scale.replicas
+ status: {}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetryinstrumentation.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetryinstrumentation.yaml
new file mode 100644
index 00000000..d54c4534
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/crds/crd-opentelemetryinstrumentation.yaml
@@ -0,0 +1,1627 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.12.0
+ name: instrumentations.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: Instrumentation
+ listKind: InstrumentationList
+ plural: instrumentations
+ shortNames:
+ - otelinst
+ - otelinsts
+ singular: instrumentation
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .spec.exporter.endpoint
+ name: Endpoint
+ type: string
+ - jsonPath: .spec.sampler.type
+ name: Sampler
+ type: string
+ - jsonPath: .spec.sampler.argument
+ name: Sampler Arg
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: Instrumentation is the spec for OpenTelemetry instrumentation.
+ 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.
+ 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.
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: InstrumentationSpec defines the desired state of OpenTelemetry
+ SDK and instrumentation.
+ properties:
+ apacheHttpd:
+ description: ApacheHttpd defines configuration for Apache HTTPD auto-instrumentation.
+ properties:
+ attrs:
+ description: 'Attrs defines Apache HTTPD agent specific attributes.
+ The precedence is: `agent default attributes` > `instrument
+ spec attributes` . Attributes are documented at https://github.'
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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
+ configPath:
+ description: Location of Apache HTTPD server configuration. Needed
+ only if different from default "/usr/local/apache2/conf"
+ type: string
+ env:
+ description: Env defines Apache HTTPD specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with Apache SDK and auto-instrumentation.
+ type: string
+ resourceRequirements:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ version:
+ description: Apache HTTPD server version. One of 2.4 or 2.2. Default
+ is 2.4
+ type: string
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ dotnet:
+ description: DotNet defines configuration for DotNet auto-instrumentation.
+ properties:
+ env:
+ description: Env defines DotNet specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with DotNet SDK and auto-instrumentation.
+ type: string
+ resourceRequirements:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ env:
+ description: Env defines common env vars.
+ 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.
+ 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['''']`, `metadata.annotations['''']`,
+ spec.nodeName, spec.serviceAccountName, status.hostIP,
+ status.'
+ 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.'
+ 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
+ exporter:
+ description: Exporter defines exporter configuration.
+ properties:
+ endpoint:
+ description: Endpoint is address of the collector with OTLP endpoint.
+ type: string
+ type: object
+ go:
+ description: Go defines configuration for Go auto-instrumentation.
+ properties:
+ env:
+ description: Env defines Go specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with Go SDK and auto-instrumentation.
+ type: string
+ resourceRequirements:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ java:
+ description: Java defines configuration for java auto-instrumentation.
+ properties:
+ env:
+ description: Env defines java specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with javaagent auto-instrumentation
+ JAR.
+ type: string
+ resources:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ nginx:
+ description: Nginx defines configuration for Nginx auto-instrumentation.
+ properties:
+ attrs:
+ description: 'Attrs defines Nginx agent specific attributes. The
+ precedence order is: `agent default attributes` > `instrument
+ spec attributes` . Attributes are documented at https://github.'
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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
+ configFile:
+ description: Location of Nginx configuration file. Needed only
+ if different from default "/etx/nginx/nginx.conf"
+ type: string
+ env:
+ description: Env defines Nginx specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with Nginx SDK and auto-instrumentation.
+ type: string
+ resourceRequirements:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ nodejs:
+ description: NodeJS defines configuration for nodejs auto-instrumentation.
+ properties:
+ env:
+ description: Env defines nodejs specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with NodeJS SDK and auto-instrumentation.
+ type: string
+ resourceRequirements:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ propagators:
+ description: Propagators defines inter-process context propagation
+ configuration. Values in this list will be set in the OTEL_PROPAGATORS
+ env var. Enum=tracecontext;baggage;b3;b3multi;jaeger;xray;ottrace;none
+ items:
+ description: Propagator represents the propagation type.
+ enum:
+ - tracecontext
+ - baggage
+ - b3
+ - b3multi
+ - jaeger
+ - xray
+ - ottrace
+ - none
+ type: string
+ type: array
+ python:
+ description: Python defines configuration for python auto-instrumentation.
+ properties:
+ env:
+ description: Env defines python specific env vars.
+ 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.
+ 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['''']`,
+ `metadata.annotations['''']`, spec.nodeName,
+ spec.serviceAccountName, status.hostIP, status.'
+ 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.'
+ 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: Image is a container image with Python SDK and auto-instrumentation.
+ type: string
+ resourceRequirements:
+ description: Resources describes the compute resource requirements.
+ 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."
+ 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.
+ type: object
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: VolumeSizeLimit defines size limit for volume used
+ for auto-instrumentation. The default size is 200Mi.
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ resource:
+ description: Resource defines the configuration for the resource attributes,
+ as defined by the OpenTelemetry specification.
+ properties:
+ addK8sUIDAttributes:
+ description: AddK8sUIDAttributes defines whether K8s UID attributes
+ should be collected (e.g. k8s.deployment.uid).
+ type: boolean
+ resourceAttributes:
+ additionalProperties:
+ type: string
+ description: 'Attributes defines attributes that are added to
+ the resource. For example environment: dev'
+ type: object
+ type: object
+ sampler:
+ description: Sampler defines sampling configuration.
+ properties:
+ argument:
+ description: Argument defines sampler argument. The value depends
+ on the sampler type. For instance for parentbased_traceidratio
+ sampler type it is a number in range [0..1] e.g. 0.25.
+ type: string
+ type:
+ description: Type defines sampler type. The value will be set
+ in the OTEL_TRACES_SAMPLER env var. The value can be for instance
+ parentbased_always_on, parentbased_always_off, parentbased_traceidratio...
+ enum:
+ - always_on
+ - always_off
+ - traceidratio
+ - parentbased_always_on
+ - parentbased_always_off
+ - parentbased_traceidratio
+ - jaeger_remote
+ - xray
+ type: string
+ type: object
+ type: object
+ status:
+ description: InstrumentationStatus defines status of the instrumentation.
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/README.md b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/README.md
new file mode 100644
index 00000000..3bfe3ab8
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/README.md
@@ -0,0 +1,7 @@
+# Examples of chart configuration
+
+Here is a collection of common configurations for the OpenTelemetry Operator. Each folder contains an example `values.yaml` and the resulting configurations that are generated by the opentelemetry-operator helm chart.
+
+- [Default configuration](default)
+
+The manifests are rendered using the `helm template` command and the specific example folder's values.yaml.
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/admission-webhooks/operator-webhook-with-cert-manager.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..04fcd065
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,184 @@
+---
+# Source: opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: Fail
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: Fail
+ name: mopentelemetrycollector.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: Fail
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: Fail
+ name: vopentelemetrycollectorcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/certmanager.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/certmanager.yaml
new file mode 100644
index 00000000..c4b147be
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/certmanager.yaml
@@ -0,0 +1,41 @@
+---
+# Source: opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/clusterrole.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/clusterrole.yaml
new file mode 100644
index 00000000..273fb7f0
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/clusterrole.yaml
@@ -0,0 +1,293 @@
+---
+# Source: opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - deployments
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - servicemonitors
+ - podmonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+---
+# Source: opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/clusterrolebinding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/clusterrolebinding.yaml
new file mode 100644
index 00000000..36f03bbb
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/clusterrolebinding.yaml
@@ -0,0 +1,42 @@
+---
+# Source: opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/deployment.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/deployment.yaml
new file mode 100644
index 00000000..28e5f5a6
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/deployment.yaml
@@ -0,0 +1,104 @@
+---
+# Source: opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ spec:
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-contrib:0.89.0
+ command:
+ - /manager
+ env:
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:v0.89.0"
+ name: manager
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 64Mi
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --logtostderr=true
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.15.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ resources:
+ limits:
+ cpu: 500m
+ memory: 128Mi
+ requests:
+ cpu: 5m
+ memory: 64Mi
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/role.yaml
new file mode 100644
index 00000000..0705842e
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/role.yaml
@@ -0,0 +1,42 @@
+---
+# Source: opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps/status
+ verbs:
+ - get
+ - update
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/rolebinding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/rolebinding.yaml
new file mode 100644
index 00000000..a0e1584d
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/rolebinding.yaml
@@ -0,0 +1,22 @@
+---
+# Source: opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/service.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/service.yaml
new file mode 100644
index 00000000..ad52dae7
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/service.yaml
@@ -0,0 +1,49 @@
+---
+# Source: opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/serviceaccount.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/serviceaccount.yaml
new file mode 100644
index 00000000..9b9b0ce7
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/serviceaccount.yaml
@@ -0,0 +1,14 @@
+---
+# Source: opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/tests/test-certmanager-connection.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..c6270065
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/tests/test-certmanager-connection.yaml
@@ -0,0 +1,37 @@
+---
+# Source: opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ restartPolicy: Never
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/tests/test-service-connection.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/tests/test-service-connection.yaml
new file mode 100644
index 00000000..cfb9b7e3
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/rendered/tests/test-service-connection.yaml
@@ -0,0 +1,74 @@
+---
+# Source: opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ restartPolicy: Never
+---
+# Source: opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.43.0
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.89.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ restartPolicy: Never
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/values.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/examples/default/values.yaml
@@ -0,0 +1 @@
+
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/kuttl-test.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/kuttl-test.yaml
new file mode 100644
index 00000000..df96ed77
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/kuttl-test.yaml
@@ -0,0 +1,4 @@
+apiVersion: kuttl.dev/v1beta1
+kind: TestSuite
+crdDir: ./charts/opentelemetry-operator/crds
+timeout: 150
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/NOTES.txt b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/NOTES.txt
new file mode 100644
index 00000000..d7ab3770
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/NOTES.txt
@@ -0,0 +1,4 @@
+{{ $.Chart.Name }} has been installed. Check its status by running:
+ kubectl --namespace {{ .Release.Namespace }} get pods -l "release={{ $.Release.Name }}"
+
+Visit https://github.com/open-telemetry/opentelemetry-operator for instructions on how to create & configure OpenTelemetryCollector and Instrumentation custom resources by using the Operator.
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/_helpers.tpl b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/_helpers.tpl
new file mode 100644
index 00000000..4812314d
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/_helpers.tpl
@@ -0,0 +1,117 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "opentelemetry-operator.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "opentelemetry-operator.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "opentelemetry-operator.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "opentelemetry-operator.labels" -}}
+helm.sh/chart: {{ include "opentelemetry-operator.chart" . }}
+{{ include "opentelemetry-operator.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "opentelemetry-operator.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "opentelemetry-operator.name" . }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "opentelemetry-operator.serviceAccountName" -}}
+{{- if .Values.manager.serviceAccount.create }}
+{{- default (include "opentelemetry-operator.name" .) .Values.manager.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.manager.serviceAccount.name }}
+{{- end }}
+{{- end }}
+
+{{- define "opentelemetry-operator.podAnnotations" -}}
+{{- if .Values.manager.podAnnotations }}
+{{- .Values.manager.podAnnotations | toYaml }}
+{{- end }}
+{{- end }}
+
+{{- define "opentelemetry-operator.podLabels" -}}
+{{- if .Values.manager.podLabels }}
+{{- .Values.manager.podLabels | toYaml }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create an ordered name of the MutatingWebhookConfiguration
+*/}}
+{{- define "opentelemetry-operator.MutatingWebhookName" -}}
+{{- printf "%s-%s" (.Values.admissionWebhooks.namePrefix | toString) (include "opentelemetry-operator.fullname" .) | trimPrefix "-" }}
+{{- end }}
+
+{{/*
+Return certificate and CA for Webhooks.
+It handles variants when a cert has to be generated by Helm,
+a cert is loaded from an existing secret or is provided via `.Values`
+*/}}
+{{- define "opentelemetry-operator.WebhookCert" -}}
+{{- $caCertEnc := "" }}
+{{- $certCrtEnc := "" }}
+{{- $certKeyEnc := "" }}
+{{- if .Values.admissionWebhooks.autoGenerateCert.enabled }}
+{{- $prevSecret := (lookup "v1" "Secret" .Release.Namespace (default (printf "%s-controller-manager-service-cert" (include "opentelemetry-operator.fullname" .)) .Values.admissionWebhooks.secretName )) }}
+{{- if and (not .Values.admissionWebhooks.autoGenerateCert.recreate) $prevSecret }}
+{{- $certCrtEnc = index $prevSecret "data" "tls.crt" }}
+{{- $certKeyEnc = index $prevSecret "data" "tls.key" }}
+{{- $caCertEnc = index $prevSecret "data" "ca.crt" }}
+{{- if not $caCertEnc }}
+{{- $prevHook := (lookup "admissionregistration.k8s.io/v1" "MutatingWebhookConfiguration" .Release.Namespace (print (include "opentelemetry-operator.MutatingWebhookName" . ) "-mutation")) }}
+{{- $caCertEnc = (first $prevHook.webhooks).clientConfig.caBundle }}
+{{- end }}
+{{- else }}
+{{- $altNames := list ( printf "%s-webhook.%s" (include "opentelemetry-operator.fullname" .) .Release.Namespace ) ( printf "%s-webhook.%s.svc" (include "opentelemetry-operator.fullname" .) .Release.Namespace ) -}}
+{{- $ca := genCA "opentelemetry-operator-operator-ca" 365 }}
+{{- $cert := genSignedCert (include "opentelemetry-operator.fullname" .) nil $altNames 365 $ca }}
+{{- $certCrtEnc = b64enc $cert.Cert }}
+{{- $certKeyEnc = b64enc $cert.Key }}
+{{- $caCertEnc = b64enc $ca.Cert }}
+{{- end }}
+{{- else }}
+{{- $certCrtEnc = b64enc .Values.admissionWebhooks.cert_file }}
+{{- $certKeyEnc = b64enc .Values.admissionWebhooks.key_file }}
+{{- $caCertEnc = b64enc .Values.admissionWebhooks.ca_file }}
+{{- end }}
+{{- $result := dict "crt" $certCrtEnc "key" $certKeyEnc "ca" $caCertEnc }}
+{{- $result | toYaml }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..6c4149e9
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,233 @@
+{{- if and (.Values.admissionWebhooks.create) (.Values.admissionWebhooks.certManager.enabled) }}
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: {{ printf "%s/%s-serving-cert" .Release.Namespace (include "opentelemetry-operator.fullname" .) }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ name: {{ template "opentelemetry-operator.MutatingWebhookName" . }}-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: minstrumentation.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /mutate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: mopentelemetrycollector.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ {{- if .Values.admissionWebhooks.enablePodOperationsWebhook }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /mutate-v1-pod
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ failurePolicy: {{ .Values.admissionWebhooks.pods.failurePolicy }}
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ {{- end }}
+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: {{ printf "%s/%s-serving-cert" .Release.Namespace (include "opentelemetry-operator.fullname" .) }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ name: {{ template "opentelemetry-operator.fullname" . }}-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: vinstrumentationcreateupdate.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: vopentelemetrycollectorcreateupdate.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordelete.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..76dbb83c
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,265 @@
+{{- if and (.Values.admissionWebhooks.create) (not .Values.admissionWebhooks.certManager.enabled) }}
+{{- $cert := fromYaml (include "opentelemetry-operator.WebhookCert" .) }}
+{{- $caCertEnc := $cert.ca }}
+{{- $certCrtEnc := $cert.crt }}
+{{- $certKeyEnc := $cert.key }}
+apiVersion: v1
+kind: Secret
+type: kubernetes.io/tls
+metadata:
+ annotations:
+ "helm.sh/hook": "pre-install,pre-upgrade"
+ "helm.sh/hook-delete-policy": "before-hook-creation"
+ {{- if .Values.admissionWebhooks.secretAnnotations }}
+ {{- toYaml .Values.admissionWebhooks.secretAnnotations | nindent 4 }}
+ {{- end }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ {{- if .Values.admissionWebhooks.secretLabels }}
+ {{- toYaml .Values.admissionWebhooks.secretLabels | nindent 4 }}
+ {{- end }}
+ name: {{ default (printf "%s-controller-manager-service-cert" (include "opentelemetry-operator.fullname" .)) .Values.admissionWebhooks.secretName }}
+ namespace: {{ .Release.Namespace }}
+data:
+ tls.crt: {{ $certCrtEnc }}
+ tls.key: {{ $certKeyEnc }}
+ ca.crt: {{ $caCertEnc }}
+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ name: {{ template "opentelemetry-operator.MutatingWebhookName" . }}-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: minstrumentation.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /mutate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: mopentelemetrycollector.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ {{- if .Values.admissionWebhooks.enablePodOperationsWebhook }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /mutate-v1-pod
+ failurePolicy: {{ .Values.admissionWebhooks.pods.failurePolicy }}
+ name: mpod.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ {{- end }}
+---
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: {{ printf "%s/%s-serving-cert" .Release.Namespace (include "opentelemetry-operator.fullname" .) }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ name: {{ template "opentelemetry-operator.fullname" . }}-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: vinstrumentationcreateupdate.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
+ name: vopentelemetrycollectorcreateupdate.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ caBundle: {{ $caCertEnc }}
+ service:
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+ path: /validate-opentelemetry-io-v1alpha1-opentelemetrycollector
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordelete.kb.io
+ {{- if .Values.admissionWebhooks.namespaceSelector }}
+ namespaceSelector:
+ {{- toYaml .Values.admissionWebhooks.namespaceSelector | nindent 6 }}
+ {{- end }}
+ {{- if .Values.admissionWebhooks.objectSelector }}
+ objectSelector:
+ {{- toYaml .Values.admissionWebhooks.objectSelector | nindent 6 }}
+ {{- end }}
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: {{ .Values.admissionWebhooks.timeoutSeconds }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/certmanager.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/certmanager.yaml
new file mode 100644
index 00000000..0b19fe4d
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/certmanager.yaml
@@ -0,0 +1,46 @@
+{{- if and .Values.admissionWebhooks.create .Values.admissionWebhooks.certManager.enabled }}
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ {{- if .Values.admissionWebhooks.certManager.certificateAnnotations }}
+ annotations:
+ {{- toYaml .Values.admissionWebhooks.certManager.certificateAnnotations | nindent 4 }}
+ {{- end }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ name: {{ template "opentelemetry-operator.fullname" . }}-serving-cert
+ namespace: {{ .Release.Namespace }}
+spec:
+ dnsNames:
+ - {{ template "opentelemetry-operator.fullname" . }}-webhook.{{ .Release.Namespace }}.svc
+ - {{ template "opentelemetry-operator.fullname" . }}-webhook.{{ .Release.Namespace }}.svc.cluster.local
+ issuerRef:
+ {{- if .Values.admissionWebhooks.certManager.issuerRef }}
+ {{- toYaml .Values.admissionWebhooks.certManager.issuerRef | nindent 4 }}
+ {{- else }}
+ kind: Issuer
+ name: {{ template "opentelemetry-operator.fullname" . }}-selfsigned-issuer
+ {{- end }}
+ secretName: {{ default (printf "%s-controller-manager-service-cert" (include "opentelemetry-operator.fullname" .)) .Values.admissionWebhooks.secretName }}
+ subject:
+ organizationalUnits:
+ - {{ template "opentelemetry-operator.fullname" . }}
+{{- if not .Values.admissionWebhooks.certManager.issuerRef }}
+---
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ {{- if .Values.admissionWebhooks.certManager.issuerAnnotations }}
+ annotations:
+ {{- toYaml .Values.admissionWebhooks.certManager.issuerAnnotations | nindent 4 }}
+ {{- end }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ name: {{ template "opentelemetry-operator.fullname" . }}-selfsigned-issuer
+ namespace: {{ .Release.Namespace }}
+spec:
+ selfSigned: {}
+{{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/clusterrole.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/clusterrole.yaml
new file mode 100644
index 00000000..6369ecb5
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/clusterrole.yaml
@@ -0,0 +1,282 @@
+{{- if .Values.clusterRole.create }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - deployments
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - servicemonitors
+ - podmonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+
+{{ if .Values.kubeRBACProxy.enabled }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+{{- end }}
+{{ end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/clusterrolebinding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
new file mode 100644
index 00000000..d87d39ff
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
@@ -0,0 +1,36 @@
+{{- if .Values.clusterRole.create }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ template "opentelemetry-operator.fullname" . }}-manager
+subjects:
+ - kind: ServiceAccount
+ name: {{ template "opentelemetry-operator.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
+
+{{ if .Values.kubeRBACProxy.enabled }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ template "opentelemetry-operator.fullname" . }}-proxy
+subjects:
+ - kind: ServiceAccount
+ name: {{ template "opentelemetry-operator.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
+{{- end }}
+{{ end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/deployment.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/deployment.yaml
new file mode 100644
index 00000000..fad51a35
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/deployment.yaml
@@ -0,0 +1,166 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ selector:
+ matchLabels:
+ {{- include "opentelemetry-operator.selectorLabels" . | nindent 6 }}
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ {{- if .Values.manager.rolling }}
+ rollme: {{ randAlphaNum 5 | quote }}
+ {{- end }}
+ kubectl.kubernetes.io/default-container: manager
+ {{- if .Values.manager.podAnnotations }}
+ {{- include "opentelemetry-operator.podAnnotations" . | nindent 8 }}
+ {{- end }}
+ labels:
+ {{- include "opentelemetry-operator.selectorLabels" . | nindent 8 }}
+ {{- if .Values.manager.podLabels }}
+ {{- include "opentelemetry-operator.podLabels" . | nindent 8 }}
+ {{- end }}
+ app.kubernetes.io/component: controller-manager
+ spec:
+ hostNetwork: {{ .Values.hostNetwork }}
+ {{- if .Values.priorityClassName }}
+ priorityClassName: {{ .Values.priorityClassName | quote }}
+ {{- end }}
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:{{ .Values.manager.ports.metricsPort }}
+ {{- if .Values.manager.leaderElection.enabled }}
+ - --enable-leader-election
+ {{- end }}
+ - --health-probe-addr=:{{ .Values.manager.ports.healthzPort }}
+ {{- if or .Values.admissionWebhooks.create .Values.admissionWebhooks.secretName }}
+ - --webhook-port={{ .Values.manager.ports.webhookPort }}
+ {{- end }}
+ {{- if and .Values.manager.collectorImage.repository .Values.manager.collectorImage.tag }}
+ - --collector-image={{ .Values.manager.collectorImage.repository }}:{{ .Values.manager.collectorImage.tag }}
+ {{- end }}
+ {{- if and .Values.manager.opampBridgeImage.repository .Values.manager.opampBridgeImage.tag }}
+ - --operator-opamp-bridge-image={{ .Values.manager.opampBridgeImage.repository }}:{{ .Values.manager.opampBridgeImage.tag }}
+ {{- end }}
+ {{- if and .Values.manager.targetAllocatorImage.repository .Values.manager.targetAllocatorImage.tag }}
+ - --target-allocator-image={{ .Values.manager.targetAllocatorImage.repository }}:{{ .Values.manager.targetAllocatorImage.tag }}
+ {{- end }}
+ {{- if and .Values.manager.autoInstrumentationImage.java.repository .Values.manager.autoInstrumentationImage.java.tag }}
+ - --auto-instrumentation-java-image={{ .Values.manager.autoInstrumentationImage.java.repository }}:{{ .Values.manager.autoInstrumentationImage.java.tag }}
+ {{- end }}
+ {{- if and .Values.manager.autoInstrumentationImage.nodejs.repository .Values.manager.autoInstrumentationImage.nodejs.tag }}
+ - --auto-instrumentation-nodejs-image={{ .Values.manager.autoInstrumentationImage.nodejs.repository }}:{{ .Values.manager.autoInstrumentationImage.nodejs.tag }}
+ {{- end }}
+ {{- if and .Values.manager.autoInstrumentationImage.python.repository .Values.manager.autoInstrumentationImage.python.tag }}
+ - --auto-instrumentation-python-image={{ .Values.manager.autoInstrumentationImage.python.repository }}:{{ .Values.manager.autoInstrumentationImage.python.tag }}
+ {{- end }}
+ {{- if and .Values.manager.autoInstrumentationImage.dotnet.repository .Values.manager.autoInstrumentationImage.dotnet.tag }}
+ - --auto-instrumentation-dotnet-image={{ .Values.manager.autoInstrumentationImage.dotnet.repository }}:{{ .Values.manager.autoInstrumentationImage.dotnet.tag }}
+ {{- end }}
+ {{- if and .Values.manager.autoInstrumentationImage.go.repository .Values.manager.autoInstrumentationImage.go.tag }}
+ - --auto-instrumentation-go-image={{ .Values.manager.autoInstrumentationImage.go.repository }}:{{ .Values.manager.autoInstrumentationImage.go.tag }}
+ {{- end }}
+ {{- if .Values.manager.featureGates }}
+ - --feature-gates={{ .Values.manager.featureGates }}
+ {{- end }}
+ {{- if .Values.manager.extraArgs }}
+ {{- .Values.manager.extraArgs | toYaml | nindent 12 }}
+ {{- end }}
+ command:
+ - /manager
+ {{- if .Values.manager.env }}
+ env:
+ {{- range $name, $value := .Values.manager.env }}
+ - name: {{ $name }}
+ value: {{ $value | quote -}}
+ {{- end }}
+ {{- end }}
+ image: "{{ .Values.manager.image.repository }}:{{ .Values.manager.image.tag }}"
+ name: manager
+ ports:
+ - containerPort: {{ .Values.manager.ports.metricsPort }}
+ name: metrics
+ protocol: TCP
+ {{- if or .Values.admissionWebhooks.create .Values.admissionWebhooks.secretName }}
+ - containerPort: {{ .Values.manager.ports.webhookPort }}
+ name: webhook-server
+ protocol: TCP
+ {{- end }}
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: {{ .Values.manager.ports.healthzPort }}
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: {{ .Values.manager.ports.healthzPort }}
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources: {{ toYaml .Values.manager.resources | nindent 12 }}
+ {{- if or .Values.admissionWebhooks.create .Values.admissionWebhooks.secretName }}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ {{- end }}
+ {{- with .Values.manager.securityContext }}
+ securityContext: {{ toYaml . | nindent 12 }}
+ {{- end }}
+ {{ if .Values.kubeRBACProxy.enabled }}
+ - args:
+ - --secure-listen-address=0.0.0.0:{{ .Values.kubeRBACProxy.ports.proxyPort }}
+ - --upstream=http://127.0.0.1:{{ .Values.manager.ports.metricsPort }}/
+ - --logtostderr=true
+ - --v=0
+ {{- if .Values.kubeRBACProxy.extraArgs }}
+ {{- .Values.kubeRBACProxy.extraArgs | toYaml | nindent 12 }}
+ {{- end }}
+ image: "{{ .Values.kubeRBACProxy.image.repository }}:{{ .Values.kubeRBACProxy.image.tag }}"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: {{ .Values.kubeRBACProxy.ports.proxyPort }}
+ name: https
+ protocol: TCP
+ {{- with .Values.kubeRBACProxy.resources }}
+ resources: {{ toYaml . | nindent 12 }}
+ {{- end }}
+ {{- with .Values.kubeRBACProxy.securityContext }}
+ securityContext: {{ toYaml . | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.affinity }}
+ affinity: {{ toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations: {{ toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.nodeSelector }}
+ nodeSelector: {{ toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.topologySpreadConstraints }}
+ topologySpreadConstraints: {{ toYaml . | nindent 8 }}
+ {{- end }}
+ serviceAccountName: {{ template "opentelemetry-operator.serviceAccountName" . }}
+ terminationGracePeriodSeconds: 10
+ {{- if or .Values.admissionWebhooks.create .Values.admissionWebhooks.secretName }}
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: {{ default (printf "%s-controller-manager-service-cert" (include "opentelemetry-operator.fullname" .)) .Values.admissionWebhooks.secretName }}
+ {{- end }}
+ securityContext:
+{{ toYaml .Values.securityContext | indent 8 }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/pdb.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/pdb.yaml
new file mode 100644
index 00000000..77992304
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/pdb.yaml
@@ -0,0 +1,21 @@
+{{- if .Values.pdb.create }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+spec:
+ {{- if .Values.pdb.minAvailable }}
+ minAvailable: {{ .Values.pdb.minAvailable }}
+ {{- end }}
+ {{- if .Values.pdb.maxUnavailable }}
+ maxUnavailable: {{ .Values.pdb.maxUnavailable }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "opentelemetry-operator.selectorLabels" . | nindent 6 }}
+ app.kubernetes.io/component: controller-manager
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/prometheusrule.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/prometheusrule.yaml
new file mode 100644
index 00000000..8f6b82d5
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/prometheusrule.yaml
@@ -0,0 +1,42 @@
+{{- if and .Values.manager.prometheusRule.enabled .Values.manager.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+ name: {{ include "opentelemetry-operator.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ {{- range $key, $value := .Values.manager.prometheusRule.extraLabels }}
+ {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }}
+ {{- end }}
+ annotations:
+ {{- range $key, $value := .Values.manager.serviceMonitor.annotations }}
+ {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }}
+ {{- end }}
+spec:
+ groups:
+{{- if .Values.manager.prometheusRule.groups }}
+ {{- toYaml .Values.manager.prometheusRule.groups | nindent 4 }}
+{{- end }}
+{{- if .Values.manager.prometheusRule.defaultRules.enabled }}
+ - name: managerRules
+ rules:
+ - alert: ReconcileErrors
+ expr: rate(controller_runtime_reconcile_total{controller="opentelemetrycollector",result="error"}[5m]) > 0
+ for: 5m
+ labels:
+ severity: warning
+ annotations:
+ description: '{{`Reconciliation errors for {{ $labels.controller }} is increasing and has now reached {{ humanize $value }} `}}'
+ runbook_url: 'Check manager logs for reasons why this might happen'
+ - alert: WorkqueueDepth
+ expr: workqueue_depth{name="opentelemetrycollector"} > 0
+ for: 5m
+ labels:
+ severity: warning
+ annotations:
+ description: '{{`Queue depth for {{ $labels.name }} has reached {{ $value }} `}}'
+ runbook_url: 'Check manager logs for reasons why this might happen'
+{{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/role.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/role.yaml
new file mode 100644
index 00000000..73564ed7
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/role.yaml
@@ -0,0 +1,38 @@
+{{- if and .Values.role.create .Values.manager.leaderElection.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-leader-election
+ namespace: {{ .Release.Namespace }}
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps/status
+ verbs:
+ - get
+ - update
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/rolebinding.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/rolebinding.yaml
new file mode 100644
index 00000000..7064a176
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/rolebinding.yaml
@@ -0,0 +1,18 @@
+{{- if and .Values.role.create .Values.manager.leaderElection.enabled }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-leader-election
+ namespace: {{ .Release.Namespace }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ template "opentelemetry-operator.fullname" . }}-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: {{ template "opentelemetry-operator.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/service.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/service.yaml
new file mode 100644
index 00000000..e3b08c82
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/service.yaml
@@ -0,0 +1,43 @@
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+spec:
+ ports:
+ {{- if .Values.kubeRBACProxy.enabled }}
+ - name: https
+ port: {{ .Values.kubeRBACProxy.ports.proxyPort }}
+ protocol: TCP
+ targetPort: https
+ {{- end }}
+ - name: metrics
+ port: {{ .Values.manager.ports.metricsPort }}
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ {{- include "opentelemetry-operator.selectorLabels" . | nindent 6 }}
+ app.kubernetes.io/component: controller-manager
+
+{{- if or .Values.admissionWebhooks.create .Values.admissionWebhooks.secretName }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ name: {{ template "opentelemetry-operator.fullname" . }}-webhook
+ namespace: {{ .Release.Namespace }}
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ {{- include "opentelemetry-operator.selectorLabels" . | nindent 6 }}
+ app.kubernetes.io/component: controller-manager
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/serviceaccount.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/serviceaccount.yaml
new file mode 100644
index 00000000..8300ba40
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/serviceaccount.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.manager.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ template "opentelemetry-operator.serviceAccountName" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ {{- if .Values.manager.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.manager.serviceAccount.annotations }}
+ {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/servicemonitor.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/servicemonitor.yaml
new file mode 100644
index 00000000..0633cf08
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/servicemonitor.yaml
@@ -0,0 +1,29 @@
+{{- if .Values.manager.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-operator.fullname" . }}
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ {{- range $key, $value := .Values.manager.serviceMonitor.extraLabels }}
+ {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }}
+ {{- end }}
+ {{- if .Values.manager.serviceMonitor.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.manager.serviceMonitor.annotations }}
+ {{- printf "%s: %s" $key (tpl $value $ | quote) | nindent 4 }}
+ {{- end }}
+ {{- end }}
+spec:
+ selector:
+ matchLabels:
+ {{- include "opentelemetry-operator.selectorLabels" . | nindent 6 }}
+ app.kubernetes.io/component: controller-manager
+ endpoints:
+ {{- toYaml .Values.manager.serviceMonitor.metricsEndpoints | nindent 2 }}
+ namespaceSelector:
+ matchNames:
+ - {{ .Release.Namespace }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..f60b10f8
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
@@ -0,0 +1,42 @@
+{{- if and .Values.admissionWebhooks.create .Values.admissionWebhooks.certManager.enabled }}
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "{{ include "opentelemetry-operator.fullname" . }}-cert-manager"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "{{ .Values.testFramework.image.repository }}:{{ .Values.testFramework.image.tag }}"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ restartPolicy: Never
+ {{- with .Values.affinity }}
+ affinity: {{ toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations: {{ toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.nodeSelector }}
+ nodeSelector: {{ toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
new file mode 100644
index 00000000..203eb432
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
@@ -0,0 +1,85 @@
+{{ if .Values.kubeRBACProxy.enabled }}
+---
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "{{ include "opentelemetry-operator.fullname" . }}-metrics"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "{{ .Values.testFramework.image.repository }}:{{ .Values.testFramework.image.tag }}"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "{{ include "opentelemetry-operator.fullname" . }}"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "{{ .Values.kubeRBACProxy.ports.proxyPort }}"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ restartPolicy: Never
+ {{- with .Values.affinity }}
+ affinity: {{ toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations: {{ toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.nodeSelector }}
+ nodeSelector: {{ toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
+---
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "{{ include "opentelemetry-operator.fullname" . }}-webhook"
+ namespace: {{ .Release.Namespace }}
+ labels:
+ {{- include "opentelemetry-operator.labels" . | nindent 4 }}
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "{{ .Values.testFramework.image.repository }}:{{ .Values.testFramework.image.tag }}"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "{{ include "opentelemetry-operator.fullname" . }}-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ restartPolicy: Never
+ {{- with .Values.affinity }}
+ affinity: {{ toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations: {{ toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.nodeSelector }}
+ nodeSelector: {{ toYaml . | nindent 4 }}
+ {{- end }}
+
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/verticalpodautoscaler.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/verticalpodautoscaler.yaml
new file mode 100644
index 00000000..660c535b
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/templates/verticalpodautoscaler.yaml
@@ -0,0 +1,38 @@
+{{- if and (.Capabilities.APIVersions.Has "autoscaling.k8s.io/v1") (.Values.manager.verticalPodAutoscaler.enabled) }}
+apiVersion: autoscaling.k8s.io/v1
+kind: VerticalPodAutoscaler
+metadata:
+ name: {{ template "opentelemetry-operator.fullname" . }}-operator
+ namespace: {{ .Release.Namespace }}
+ labels:
+ app: {{ template "opentelemetry-operator.name" . }}-operator
+{{- include "opentelemetry-operator.labels" . | nindent 4 }}
+spec:
+ resourcePolicy:
+ containerPolicies:
+ - containerName: manager
+ {{- if .Values.manager.verticalPodAutoscaler.controlledResources }}
+ controlledResources: {{ .Values.manager.verticalPodAutoscaler.controlledResources }}
+ {{- end }}
+ {{- if .Values.manager.verticalPodAutoscaler.maxAllowed }}
+ maxAllowed:
+ {{- toYaml .Values.manager.verticalPodAutoscaler.maxAllowed | nindent 8 }}
+ {{- end }}
+ {{- if .Values.manager.verticalPodAutoscaler.minAllowed }}
+ minAllowed:
+ {{- toYaml .Values.manager.verticalPodAutoscaler.minAllowed | nindent 8 }}
+ {{- end }}
+ targetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ template "opentelemetry-operator.fullname" . }}
+ {{- if .Values.manager.verticalPodAutoscaler.updatePolicy }}
+ updatePolicy:
+ {{- if .Values.manager.verticalPodAutoscaler.updatePolicy.updateMode }}
+ updateMode: {{ .Values.manager.verticalPodAutoscaler.updatePolicy.updateMode }}
+ {{- end }}
+ {{- if .Values.manager.verticalPodAutoscaler.updatePolicy.minReplicas }}
+ minReplicas: {{ .Values.manager.verticalPodAutoscaler.updatePolicy.minReplicas }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/values.schema.json b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/values.schema.json
new file mode 100644
index 00000000..4a027209
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/values.schema.json
@@ -0,0 +1,1852 @@
+{
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
+ "$id": "http://example.com/example.json",
+ "type": "object",
+ "default": {},
+ "title": "Root Schema",
+ "required": [
+ "replicaCount",
+ "nameOverride",
+ "imagePullSecrets",
+ "pdb",
+ "manager",
+ "kubeRBACProxy",
+ "admissionWebhooks",
+ "role",
+ "clusterRole",
+ "affinity",
+ "tolerations",
+ "nodeSelector",
+ "topologySpreadConstraints",
+ "hostNetwork",
+ "priorityClassName",
+ "securityContext",
+ "testFramework"
+ ],
+ "properties": {
+ "replicaCount": {
+ "type": "integer",
+ "default": 0,
+ "title": "The replicaCount Schema",
+ "examples": [
+ 1
+ ]
+ },
+ "nameOverride": {
+ "type": "string",
+ "default": "",
+ "title": "The nameOverride Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "imagePullSecrets": {
+ "type": "array",
+ "default": [],
+ "title": "The imagePullSecrets Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "pdb": {
+ "type": "object",
+ "default": {},
+ "title": "The pdb Schema",
+ "required": [
+ "create",
+ "minAvailable",
+ "maxUnavailable"
+ ],
+ "properties": {
+ "create": {
+ "type": "boolean",
+ "default": false,
+ "title": "The create Schema",
+ "examples": [
+ false
+ ]
+ },
+ "minAvailable": {
+ "oneOf": [
+ {
+ "type": ["string", "null"]
+ },
+ {
+ "type": ["integer", "null"]
+ }
+ ]
+ },
+ "maxUnavailable": {
+ "oneOf": [
+ {
+ "type": ["string", "null"]
+ },
+ {
+ "type": ["integer", "null"]
+ }
+ ]
+ }
+ },
+ "examples": [{
+ "create": false,
+ "minAvailable": 1,
+ "maxUnavailable": ""
+ }]
+ },
+ "manager": {
+ "type": "object",
+ "default": {},
+ "title": "The manager Schema",
+ "required": [
+ "image",
+ "collectorImage",
+ "opampBridgeImage",
+ "targetAllocatorImage",
+ "autoInstrumentationImage",
+ "featureGates",
+ "ports",
+ "resources",
+ "env",
+ "serviceAccount",
+ "serviceMonitor",
+ "podAnnotations",
+ "podLabels",
+ "prometheusRule",
+ "extraArgs",
+ "leaderElection",
+ "verticalPodAutoscaler",
+ "rolling",
+ "securityContext"
+ ],
+ "properties": {
+ "image": {
+ "type": "object",
+ "default": {},
+ "title": "The image Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator"
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ "v0.89.0"
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator",
+ "tag": "v0.89.0"
+ }]
+ },
+ "collectorImage": {
+ "type": "object",
+ "default": {},
+ "title": "The collectorImage Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ "otel/opentelemetry-collector-contrib"
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ "0.89.0"
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "otel/opentelemetry-collector-contrib",
+ "tag": "0.89.0"
+ }]
+ },
+ "opampBridgeImage": {
+ "type": "object",
+ "default": {},
+ "title": "The opampBridgeImage Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ },
+ "targetAllocatorImage": {
+ "type": "object",
+ "default": {},
+ "title": "The targetAllocatorImage Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ },
+ "autoInstrumentationImage": {
+ "type": "object",
+ "default": {},
+ "title": "The autoInstrumentationImage Schema",
+ "required": [
+ "java",
+ "nodejs",
+ "python",
+ "dotnet",
+ "go"
+ ],
+ "properties": {
+ "java": {
+ "type": "object",
+ "default": {},
+ "title": "The java Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ },
+ "nodejs": {
+ "type": "object",
+ "default": {},
+ "title": "The nodejs Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ },
+ "python": {
+ "type": "object",
+ "default": {},
+ "title": "The python Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ },
+ "dotnet": {
+ "type": "object",
+ "default": {},
+ "title": "The dotnet Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ },
+ "go": {
+ "type": "object",
+ "default": {},
+ "title": "The go Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ ""
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "",
+ "tag": ""
+ }]
+ }
+ },
+ "examples": [{
+ "java": {
+ "repository": "",
+ "tag": ""
+ },
+ "nodejs": {
+ "repository": "",
+ "tag": ""
+ },
+ "python": {
+ "repository": "",
+ "tag": ""
+ },
+ "dotnet": {
+ "repository": "",
+ "tag": ""
+ },
+ "go": {
+ "repository": "",
+ "tag": ""
+ }
+ }]
+ },
+ "featureGates": {
+ "type": "string",
+ "default": "",
+ "title": "The featureGates Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "ports": {
+ "type": "object",
+ "default": {},
+ "title": "The ports Schema",
+ "required": [
+ "metricsPort",
+ "webhookPort",
+ "healthzPort"
+ ],
+ "properties": {
+ "metricsPort": {
+ "type": "integer",
+ "default": 0,
+ "title": "The metricsPort Schema",
+ "examples": [
+ 8080
+ ]
+ },
+ "webhookPort": {
+ "type": "integer",
+ "default": 0,
+ "title": "The webhookPort Schema",
+ "examples": [
+ 9443
+ ]
+ },
+ "healthzPort": {
+ "type": "integer",
+ "default": 0,
+ "title": "The healthzPort Schema",
+ "examples": [
+ 8081
+ ]
+ }
+ },
+ "examples": [{
+ "metricsPort": 8080,
+ "webhookPort": 9443,
+ "healthzPort": 8081
+ }]
+ },
+ "resources": {
+ "type": "object",
+ "default": {},
+ "title": "The resources Schema",
+ "required": [
+ "limits",
+ "requests"
+ ],
+ "properties": {
+ "limits": {
+ "type": "object",
+ "default": {},
+ "title": "The limits Schema",
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "properties": {
+ "cpu": {
+ "type": "string",
+ "default": "",
+ "title": "The cpu Schema",
+ "examples": [
+ "100m"
+ ]
+ },
+ "memory": {
+ "type": "string",
+ "default": "",
+ "title": "The memory Schema",
+ "examples": [
+ "128Mi"
+ ]
+ }
+ },
+ "examples": [{
+ "cpu": "100m",
+ "memory": "128Mi"
+ }]
+ },
+ "requests": {
+ "type": "object",
+ "default": {},
+ "title": "The requests Schema",
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "properties": {
+ "cpu": {
+ "type": "string",
+ "default": "",
+ "title": "The cpu Schema",
+ "examples": [
+ "100m"
+ ]
+ },
+ "memory": {
+ "type": "string",
+ "default": "",
+ "title": "The memory Schema",
+ "examples": [
+ "64Mi"
+ ]
+ }
+ },
+ "examples": [{
+ "cpu": "100m",
+ "memory": "64Mi"
+ }]
+ }
+ },
+ "examples": [{
+ "limits": {
+ "cpu": "100m",
+ "memory": "128Mi"
+ },
+ "requests": {
+ "cpu": "100m",
+ "memory": "64Mi"
+ }
+ }]
+ },
+ "env": {
+ "type": "object",
+ "default": {},
+ "title": "The env Schema",
+ "required": [
+ "ENABLE_WEBHOOKS"
+ ],
+ "properties": {
+ "ENABLE_WEBHOOKS": {
+ "type": "string",
+ "default": "",
+ "title": "The ENABLE_WEBHOOKS Schema",
+ "examples": [
+ "true"
+ ]
+ }
+ },
+ "examples": [{
+ "ENABLE_WEBHOOKS": "true"
+ }]
+ },
+ "serviceAccount": {
+ "type": "object",
+ "default": {},
+ "title": "The serviceAccount Schema",
+ "required": [
+ "create",
+ "annotations"
+ ],
+ "properties": {
+ "create": {
+ "type": "boolean",
+ "default": false,
+ "title": "The create Schema",
+ "examples": [
+ true
+ ]
+ },
+ "annotations": {
+ "type": "object",
+ "default": {},
+ "title": "The annotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ }
+ },
+ "examples": [{
+ "create": true,
+ "annotations": {}
+ }]
+ },
+ "serviceMonitor": {
+ "type": "object",
+ "default": {},
+ "title": "The serviceMonitor Schema",
+ "required": [
+ "enabled",
+ "extraLabels",
+ "annotations",
+ "metricsEndpoints"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ false
+ ]
+ },
+ "extraLabels": {
+ "type": "object",
+ "default": {},
+ "title": "The extraLabels Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "annotations": {
+ "type": "object",
+ "default": {},
+ "title": "The annotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "metricsEndpoints": {
+ "type": "array",
+ "default": [],
+ "title": "The metricsEndpoints Schema",
+ "items": {
+ "type": "object",
+ "default": {},
+ "title": "A Schema",
+ "required": [
+ "port"
+ ],
+ "properties": {
+ "port": {
+ "type": "string",
+ "default": "",
+ "title": "The port Schema",
+ "examples": [
+ "metrics"
+ ]
+ }
+ },
+ "examples": [{
+ "port": "metrics"
+ }]
+ },
+ "examples": [
+ [{
+ "port": "metrics"
+ }]
+ ]
+ }
+ },
+ "examples": [{
+ "enabled": false,
+ "extraLabels": {},
+ "annotations": {},
+ "metricsEndpoints": [{
+ "port": "metrics"
+ }]
+ }]
+ },
+ "podAnnotations": {
+ "type": "object",
+ "default": {},
+ "title": "The podAnnotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "podLabels": {
+ "type": "object",
+ "default": {},
+ "title": "The podLabels Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "prometheusRule": {
+ "type": "object",
+ "default": {},
+ "title": "The prometheusRule Schema",
+ "required": [
+ "enabled",
+ "groups",
+ "defaultRules",
+ "extraLabels",
+ "annotations"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ false
+ ]
+ },
+ "groups": {
+ "type": "array",
+ "default": [],
+ "title": "The groups Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "defaultRules": {
+ "type": "object",
+ "default": {},
+ "title": "The defaultRules Schema",
+ "required": [
+ "enabled"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ false
+ ]
+ }
+ },
+ "examples": [{
+ "enabled": false
+ }]
+ },
+ "extraLabels": {
+ "type": "object",
+ "default": {},
+ "title": "The extraLabels Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "annotations": {
+ "type": "object",
+ "default": {},
+ "title": "The annotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ }
+ },
+ "examples": [{
+ "enabled": false,
+ "groups": [],
+ "defaultRules": {
+ "enabled": false
+ },
+ "extraLabels": {},
+ "annotations": {}
+ }]
+ },
+ "extraArgs": {
+ "type": "array",
+ "default": [],
+ "title": "The extraArgs Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "leaderElection": {
+ "type": "object",
+ "default": {},
+ "title": "The leaderElection Schema",
+ "required": [
+ "enabled"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ true
+ ]
+ }
+ },
+ "examples": [{
+ "enabled": true
+ }]
+ },
+ "verticalPodAutoscaler": {
+ "type": "object",
+ "default": {},
+ "title": "The verticalPodAutoscaler Schema",
+ "required": [
+ "enabled",
+ "controlledResources",
+ "maxAllowed",
+ "minAllowed",
+ "updatePolicy"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ false
+ ]
+ },
+ "controlledResources": {
+ "type": "array",
+ "default": [],
+ "title": "The controlledResources Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "maxAllowed": {
+ "type": "object",
+ "default": {},
+ "title": "The maxAllowed Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "minAllowed": {
+ "type": "object",
+ "default": {},
+ "title": "The minAllowed Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "updatePolicy": {
+ "type": "object",
+ "default": {},
+ "title": "The updatePolicy Schema",
+ "required": [
+ "updateMode",
+ "minReplicas"
+ ],
+ "properties": {
+ "updateMode": {
+ "type": "string",
+ "default": "",
+ "title": "The updateMode Schema",
+ "examples": [
+ "Auto"
+ ]
+ },
+ "minReplicas": {
+ "type": "integer",
+ "default": 0,
+ "title": "The minReplicas Schema",
+ "examples": [
+ 2
+ ]
+ }
+ },
+ "examples": [{
+ "updateMode": "Auto",
+ "minReplicas": 2
+ }]
+ }
+ },
+ "examples": [{
+ "enabled": false,
+ "controlledResources": [],
+ "maxAllowed": {},
+ "minAllowed": {},
+ "updatePolicy": {
+ "updateMode": "Auto",
+ "minReplicas": 2
+ }
+ }]
+ },
+ "rolling": {
+ "type": "boolean",
+ "default": false,
+ "title": "The rolling Schema",
+ "examples": [
+ false
+ ]
+ },
+ "securityContext": {
+ "type": "object",
+ "default": {},
+ "title": "The securityContext Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ }
+ },
+ "examples": [{
+ "image": {
+ "repository": "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator",
+ "tag": "v0.89.0"
+ },
+ "collectorImage": {
+ "repository": "otel/opentelemetry-collector-contrib",
+ "tag": "0.89.0"
+ },
+ "opampBridgeImage": {
+ "repository": "",
+ "tag": ""
+ },
+ "targetAllocatorImage": {
+ "repository": "",
+ "tag": ""
+ },
+ "autoInstrumentationImage": {
+ "java": {
+ "repository": "",
+ "tag": ""
+ },
+ "nodejs": {
+ "repository": "",
+ "tag": ""
+ },
+ "python": {
+ "repository": "",
+ "tag": ""
+ },
+ "dotnet": {
+ "repository": "",
+ "tag": ""
+ },
+ "go": {
+ "repository": "",
+ "tag": ""
+ }
+ },
+ "featureGates": "",
+ "ports": {
+ "metricsPort": 8080,
+ "webhookPort": 9443,
+ "healthzPort": 8081
+ },
+ "resources": {
+ "limits": {
+ "cpu": "100m",
+ "memory": "128Mi"
+ },
+ "requests": {
+ "cpu": "100m",
+ "memory": "64Mi"
+ }
+ },
+ "env": {
+ "ENABLE_WEBHOOKS": "true"
+ },
+ "serviceAccount": {
+ "create": true,
+ "annotations": {}
+ },
+ "serviceMonitor": {
+ "enabled": false,
+ "extraLabels": {},
+ "annotations": {},
+ "metricsEndpoints": [{
+ "port": "metrics"
+ }]
+ },
+ "podAnnotations": {},
+ "podLabels": {},
+ "prometheusRule": {
+ "enabled": false,
+ "groups": [],
+ "defaultRules": {
+ "enabled": false
+ },
+ "extraLabels": {},
+ "annotations": {}
+ },
+ "extraArgs": [],
+ "leaderElection": {
+ "enabled": true
+ },
+ "verticalPodAutoscaler": {
+ "enabled": false,
+ "controlledResources": [],
+ "maxAllowed": {},
+ "minAllowed": {},
+ "updatePolicy": {
+ "updateMode": "Auto",
+ "minReplicas": 2
+ }
+ },
+ "rolling": false,
+ "securityContext": {}
+ }]
+ },
+ "kubeRBACProxy": {
+ "type": "object",
+ "default": {},
+ "title": "The kubeRBACProxy Schema",
+ "required": [
+ "enabled",
+ "image",
+ "ports",
+ "resources",
+ "extraArgs",
+ "securityContext"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ true
+ ]
+ },
+ "image": {
+ "type": "object",
+ "default": {},
+ "title": "The image Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ "quay.io/brancz/kube-rbac-proxy"
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ "v0.15.0"
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "quay.io/brancz/kube-rbac-proxy",
+ "tag": "v0.15.0"
+ }]
+ },
+ "ports": {
+ "type": "object",
+ "default": {},
+ "title": "The ports Schema",
+ "required": [
+ "proxyPort"
+ ],
+ "properties": {
+ "proxyPort": {
+ "type": "integer",
+ "default": 0,
+ "title": "The proxyPort Schema",
+ "examples": [
+ 8443
+ ]
+ }
+ },
+ "examples": [{
+ "proxyPort": 8443
+ }]
+ },
+ "resources": {
+ "type": "object",
+ "default": {},
+ "title": "The resources Schema",
+ "required": [
+ "limits",
+ "requests"
+ ],
+ "properties": {
+ "limits": {
+ "type": "object",
+ "default": {},
+ "title": "The limits Schema",
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "properties": {
+ "cpu": {
+ "type": "string",
+ "default": "",
+ "title": "The cpu Schema",
+ "examples": [
+ "500m"
+ ]
+ },
+ "memory": {
+ "type": "string",
+ "default": "",
+ "title": "The memory Schema",
+ "examples": [
+ "128Mi"
+ ]
+ }
+ },
+ "examples": [{
+ "cpu": "500m",
+ "memory": "128Mi"
+ }]
+ },
+ "requests": {
+ "type": "object",
+ "default": {},
+ "title": "The requests Schema",
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "properties": {
+ "cpu": {
+ "type": "string",
+ "default": "",
+ "title": "The cpu Schema",
+ "examples": [
+ "5m"
+ ]
+ },
+ "memory": {
+ "type": "string",
+ "default": "",
+ "title": "The memory Schema",
+ "examples": [
+ "64Mi"
+ ]
+ }
+ },
+ "examples": [{
+ "cpu": "5m",
+ "memory": "64Mi"
+ }]
+ }
+ },
+ "examples": [{
+ "limits": {
+ "cpu": "500m",
+ "memory": "128Mi"
+ },
+ "requests": {
+ "cpu": "5m",
+ "memory": "64Mi"
+ }
+ }]
+ },
+ "extraArgs": {
+ "type": "array",
+ "default": [],
+ "title": "The extraArgs Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "securityContext": {
+ "type": "object",
+ "default": {},
+ "title": "The securityContext Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ }
+ },
+ "examples": [{
+ "enabled": true,
+ "image": {
+ "repository": "quay.io/brancz/kube-rbac-proxy",
+ "tag": "v0.15.0"
+ },
+ "ports": {
+ "proxyPort": 8443
+ },
+ "resources": {
+ "limits": {
+ "cpu": "500m",
+ "memory": "128Mi"
+ },
+ "requests": {
+ "cpu": "5m",
+ "memory": "64Mi"
+ }
+ },
+ "extraArgs": [],
+ "securityContext": {}
+ }]
+ },
+ "admissionWebhooks": {
+ "type": "object",
+ "default": {},
+ "title": "The admissionWebhooks Schema",
+ "required": [
+ "create",
+ "failurePolicy",
+ "secretName",
+ "pods",
+ "namePrefix",
+ "timeoutSeconds",
+ "namespaceSelector",
+ "objectSelector",
+ "certManager",
+ "autoGenerateCert",
+ "cert_file",
+ "key_file",
+ "ca_file",
+ "secretAnnotations",
+ "secretLabels"
+ ],
+ "properties": {
+ "create": {
+ "type": "boolean",
+ "default": false,
+ "title": "The create Schema",
+ "examples": [
+ true
+ ]
+ },
+ "failurePolicy": {
+ "type": "string",
+ "default": "",
+ "title": "The failurePolicy Schema",
+ "examples": [
+ "Fail"
+ ]
+ },
+ "secretName": {
+ "type": "string",
+ "default": "",
+ "title": "The secretName Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "pods": {
+ "type": "object",
+ "default": {},
+ "title": "The pods Schema",
+ "required": [
+ "failurePolicy"
+ ],
+ "properties": {
+ "failurePolicy": {
+ "type": "string",
+ "default": "",
+ "title": "The failurePolicy Schema",
+ "examples": [
+ "Ignore"
+ ]
+ }
+ },
+ "examples": [{
+ "failurePolicy": "Ignore"
+ }]
+ },
+ "namePrefix": {
+ "type": "string",
+ "default": "",
+ "title": "The namePrefix Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "timeoutSeconds": {
+ "type": "integer",
+ "default": 0,
+ "title": "The timeoutSeconds Schema",
+ "examples": [
+ 10
+ ]
+ },
+ "namespaceSelector": {
+ "type": "object",
+ "default": {},
+ "title": "The namespaceSelector Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "objectSelector": {
+ "type": "object",
+ "default": {},
+ "title": "The objectSelector Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "enablePodOperationsWebhook": {
+ "type": "boolean",
+ "default": true,
+ "title": "deploy pod operations webhook",
+ "required": [],
+ "properties": {},
+ "examples": [false]
+ },
+ "certManager": {
+ "type": "object",
+ "default": {},
+ "title": "The certManager Schema",
+ "required": [
+ "enabled",
+ "issuerRef",
+ "certificateAnnotations",
+ "issuerAnnotations"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ true
+ ]
+ },
+ "issuerRef": {
+ "type": "object",
+ "default": {},
+ "title": "The issuerRef Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "certificateAnnotations": {
+ "type": "object",
+ "default": {},
+ "title": "The certificateAnnotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "issuerAnnotations": {
+ "type": "object",
+ "default": {},
+ "title": "The issuerAnnotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ }
+ },
+ "examples": [{
+ "enabled": true,
+ "issuerRef": {},
+ "certificateAnnotations": {},
+ "issuerAnnotations": {}
+ }]
+ },
+ "autoGenerateCert": {
+ "type": "object",
+ "default": {},
+ "title": "The autoGenerateCert Schema",
+ "required": [
+ "enabled",
+ "recreate"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false,
+ "title": "The enabled Schema",
+ "examples": [
+ true
+ ]
+ },
+ "recreate": {
+ "type": "boolean",
+ "default": false,
+ "title": "The recreate Schema",
+ "examples": [
+ true
+ ]
+ }
+ },
+ "examples": [{
+ "enabled": true,
+ "recreate": true
+ }]
+ },
+ "cert_file": {
+ "type": "string",
+ "default": "",
+ "title": "The cert_file Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "key_file": {
+ "type": "string",
+ "default": "",
+ "title": "The key_file Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "ca_file": {
+ "type": "string",
+ "default": "",
+ "title": "The ca_file Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "secretAnnotations": {
+ "type": "object",
+ "default": {},
+ "title": "The secretAnnotations Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "secretLabels": {
+ "type": "object",
+ "default": {},
+ "title": "The secretLabels Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ }
+ },
+ "examples": [{
+ "create": true,
+ "failurePolicy": "Fail",
+ "secretName": "",
+ "pods": {
+ "failurePolicy": "Ignore"
+ },
+ "namePrefix": "",
+ "timeoutSeconds": 10,
+ "namespaceSelector": {},
+ "objectSelector": {},
+ "certManager": {
+ "enabled": true,
+ "issuerRef": {},
+ "certificateAnnotations": {},
+ "issuerAnnotations": {}
+ },
+ "autoGenerateCert": {
+ "enabled": true,
+ "recreate": true
+ },
+ "cert_file": "",
+ "key_file": "",
+ "ca_file": "",
+ "secretAnnotations": {},
+ "secretLabels": {}
+ }]
+ },
+ "role": {
+ "type": "object",
+ "default": {},
+ "title": "The role Schema",
+ "required": [
+ "create"
+ ],
+ "properties": {
+ "create": {
+ "type": "boolean",
+ "default": false,
+ "title": "The create Schema",
+ "examples": [
+ true
+ ]
+ }
+ },
+ "examples": [{
+ "create": true
+ }]
+ },
+ "clusterRole": {
+ "type": "object",
+ "default": {},
+ "title": "The clusterRole Schema",
+ "required": [
+ "create"
+ ],
+ "properties": {
+ "create": {
+ "type": "boolean",
+ "default": false,
+ "title": "The create Schema",
+ "examples": [
+ true
+ ]
+ }
+ },
+ "examples": [{
+ "create": true
+ }]
+ },
+ "affinity": {
+ "type": "object",
+ "default": {},
+ "title": "The affinity Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "tolerations": {
+ "type": "array",
+ "default": [],
+ "title": "The tolerations Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "nodeSelector": {
+ "type": "object",
+ "default": {},
+ "title": "The nodeSelector Schema",
+ "required": [],
+ "properties": {},
+ "examples": [{}]
+ },
+ "topologySpreadConstraints": {
+ "type": "array",
+ "default": [],
+ "title": "The topologySpreadConstraints Schema",
+ "items": {},
+ "examples": [
+ []
+ ]
+ },
+ "hostNetwork": {
+ "type": "boolean",
+ "default": false,
+ "title": "The hostNetwork Schema",
+ "examples": [
+ false
+ ]
+ },
+ "priorityClassName": {
+ "type": "string",
+ "default": "",
+ "title": "The priorityClassName Schema",
+ "examples": [
+ ""
+ ]
+ },
+ "securityContext": {
+ "type": "object",
+ "default": {},
+ "title": "The securityContext Schema",
+ "required": [
+ "runAsGroup",
+ "runAsNonRoot",
+ "runAsUser",
+ "fsGroup"
+ ],
+ "properties": {
+ "runAsGroup": {
+ "type": "integer",
+ "default": 0,
+ "title": "The runAsGroup Schema",
+ "examples": [
+ 65532
+ ]
+ },
+ "runAsNonRoot": {
+ "type": "boolean",
+ "default": false,
+ "title": "The runAsNonRoot Schema",
+ "examples": [
+ true
+ ]
+ },
+ "runAsUser": {
+ "type": "integer",
+ "default": 0,
+ "title": "The runAsUser Schema",
+ "examples": [
+ 65532
+ ]
+ },
+ "fsGroup": {
+ "type": "integer",
+ "default": 0,
+ "title": "The fsGroup Schema",
+ "examples": [
+ 65532
+ ]
+ }
+ },
+ "examples": [{
+ "runAsGroup": 65532,
+ "runAsNonRoot": true,
+ "runAsUser": 65532,
+ "fsGroup": 65532
+ }]
+ },
+ "testFramework": {
+ "type": "object",
+ "default": {},
+ "title": "The testFramework Schema",
+ "required": [
+ "image"
+ ],
+ "properties": {
+ "image": {
+ "type": "object",
+ "default": {},
+ "title": "The image Schema",
+ "required": [
+ "repository",
+ "tag"
+ ],
+ "properties": {
+ "repository": {
+ "type": "string",
+ "default": "",
+ "title": "The repository Schema",
+ "examples": [
+ "busybox"
+ ]
+ },
+ "tag": {
+ "type": "string",
+ "default": "",
+ "title": "The tag Schema",
+ "examples": [
+ "latest"
+ ]
+ }
+ },
+ "examples": [{
+ "repository": "busybox",
+ "tag": "latest"
+ }]
+ }
+ },
+ "examples": [{
+ "image": {
+ "repository": "busybox",
+ "tag": "latest"
+ }
+ }]
+ }
+ },
+ "examples": [{
+ "replicaCount": 1,
+ "nameOverride": "",
+ "imagePullSecrets": [],
+ "pdb": {
+ "create": false,
+ "minAvailable": 1,
+ "maxUnavailable": ""
+ },
+ "manager": {
+ "image": {
+ "repository": "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator",
+ "tag": "v0.89.0"
+ },
+ "collectorImage": {
+ "repository": "otel/opentelemetry-collector-contrib",
+ "tag": "0.89.0"
+ },
+ "opampBridgeImage": {
+ "repository": "",
+ "tag": ""
+ },
+ "targetAllocatorImage": {
+ "repository": "",
+ "tag": ""
+ },
+ "autoInstrumentationImage": {
+ "java": {
+ "repository": "",
+ "tag": ""
+ },
+ "nodejs": {
+ "repository": "",
+ "tag": ""
+ },
+ "python": {
+ "repository": "",
+ "tag": ""
+ },
+ "dotnet": {
+ "repository": "",
+ "tag": ""
+ },
+ "go": {
+ "repository": "",
+ "tag": ""
+ }
+ },
+ "featureGates": "",
+ "ports": {
+ "metricsPort": 8080,
+ "webhookPort": 9443,
+ "healthzPort": 8081
+ },
+ "resources": {
+ "limits": {
+ "cpu": "100m",
+ "memory": "128Mi"
+ },
+ "requests": {
+ "cpu": "100m",
+ "memory": "64Mi"
+ }
+ },
+ "env": {
+ "ENABLE_WEBHOOKS": "true"
+ },
+ "serviceAccount": {
+ "create": true,
+ "annotations": {}
+ },
+ "serviceMonitor": {
+ "enabled": false,
+ "extraLabels": {},
+ "annotations": {},
+ "metricsEndpoints": [{
+ "port": "metrics"
+ }]
+ },
+ "podAnnotations": {},
+ "podLabels": {},
+ "prometheusRule": {
+ "enabled": false,
+ "groups": [],
+ "defaultRules": {
+ "enabled": false
+ },
+ "extraLabels": {},
+ "annotations": {}
+ },
+ "extraArgs": [],
+ "leaderElection": {
+ "enabled": true
+ },
+ "verticalPodAutoscaler": {
+ "enabled": false,
+ "controlledResources": [],
+ "maxAllowed": {},
+ "minAllowed": {},
+ "updatePolicy": {
+ "updateMode": "Auto",
+ "minReplicas": 2
+ }
+ },
+ "rolling": false,
+ "securityContext": {}
+ },
+ "kubeRBACProxy": {
+ "enabled": true,
+ "image": {
+ "repository": "quay.io/brancz/kube-rbac-proxy",
+ "tag": "v0.15.0"
+ },
+ "ports": {
+ "proxyPort": 8443
+ },
+ "resources": {
+ "limits": {
+ "cpu": "500m",
+ "memory": "128Mi"
+ },
+ "requests": {
+ "cpu": "5m",
+ "memory": "64Mi"
+ }
+ },
+ "extraArgs": [],
+ "securityContext": {}
+ },
+ "admissionWebhooks": {
+ "create": true,
+ "failurePolicy": "Fail",
+ "secretName": "",
+ "pods": {
+ "failurePolicy": "Ignore"
+ },
+ "namePrefix": "",
+ "timeoutSeconds": 10,
+ "namespaceSelector": {},
+ "objectSelector": {},
+ "certManager": {
+ "enabled": true,
+ "issuerRef": {},
+ "certificateAnnotations": {},
+ "issuerAnnotations": {}
+ },
+ "autoGenerateCert": {
+ "enabled": true,
+ "recreate": true
+ },
+ "cert_file": "",
+ "key_file": "",
+ "ca_file": "",
+ "secretAnnotations": {},
+ "secretLabels": {}
+ },
+ "role": {
+ "create": true
+ },
+ "clusterRole": {
+ "create": true
+ },
+ "affinity": {},
+ "tolerations": [],
+ "nodeSelector": {},
+ "topologySpreadConstraints": [],
+ "hostNetwork": false,
+ "priorityClassName": "",
+ "securityContext": {
+ "runAsGroup": 65532,
+ "runAsNonRoot": true,
+ "runAsUser": 65532,
+ "fsGroup": 65532
+ },
+ "testFramework": {
+ "image": {
+ "repository": "busybox",
+ "tag": "latest"
+ }
+ }
+ }]
+}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/values.yaml
new file mode 100644
index 00000000..79630c47
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/charts/opentelemetry-operator/values.yaml
@@ -0,0 +1,274 @@
+# Default values for opentelemetry-operator.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+## Provide a name in place of opentelemetry-operator.
+##
+nameOverride: ""
+
+## Reference one or more secrets to be used when pulling images from authenticated repositories.
+imagePullSecrets: []
+
+## Pod Disruption Budget configuration
+##
+pdb:
+ ## Enable/disable a Pod Disruption Budget creation
+ ##
+ create: false
+ ## Minimum number/percentage of pods that should remain scheduled
+ ##
+ minAvailable: 1
+ ## Maximum number/percentage of pods that may be made unavailable
+ ##
+ maxUnavailable: ""
+
+## Provide OpenTelemetry Operator manager container image and resources.
+##
+manager:
+ image:
+ repository: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
+ tag: v0.89.0
+ collectorImage:
+ repository: otel/opentelemetry-collector-contrib
+ tag: 0.89.0
+ opampBridgeImage:
+ repository: ""
+ tag: ""
+ targetAllocatorImage:
+ repository: ""
+ tag: ""
+ autoInstrumentationImage:
+ java:
+ repository: ""
+ tag: ""
+ nodejs:
+ repository: ""
+ tag: ""
+ python:
+ repository: ""
+ tag: ""
+ dotnet:
+ repository: ""
+ tag: ""
+ # The Go instrumentaiton support in the operator is disabled by default.
+ # To enable it, use the operator.autoinstrumentation.go feature gate.
+ go:
+ repository: ""
+ tag: ""
+ # Feature Gates are a a comma-delimited list of feature gate identifiers.
+ # Prefix a gate with '-' to disable support.
+ # Prefixing a gate with '+' or no prefix will enable support.
+ # A full list of valud identifiers can be found here: https://github.com/open-telemetry/opentelemetry-operator/blob/main/pkg/featuregate/featuregate.go
+ featureGates: ""
+ ports:
+ metricsPort: 8080
+ webhookPort: 9443
+ healthzPort: 8081
+ resources:
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 64Mi
+ ## Adds additional environment variables
+ ## e.g ENV_VAR: env_value
+ env:
+ ENABLE_WEBHOOKS: "true"
+
+ # -- Create the manager ServiceAccount
+ serviceAccount:
+ create: true
+ annotations: {}
+ # name: nameOverride
+
+ ## Enable ServiceMonitor for Prometheus metrics scrape
+ serviceMonitor:
+ enabled: false
+ # additional labels on the ServiceMonitor
+ extraLabels: {}
+ # add annotations on the ServiceMonitor
+ annotations: {}
+ metricsEndpoints:
+ - port: metrics
+
+ podAnnotations: {}
+ podLabels: {}
+
+ prometheusRule:
+ enabled: false
+ groups: []
+ # Create default rules for monitoring the manager
+ defaultRules:
+ enabled: false
+ # additional labels on the PrometheusRule
+ extraLabels: {}
+ # add annotations on the PrometheusRule
+ annotations: {}
+
+
+ ## List of additional cli arguments to configure the manager
+ ## for example: --labels, etc.
+ extraArgs: []
+
+ ## Enable leader election mechanism for protecting against split brain if multiple operator pods/replicas are started.
+ ## See more at https://docs.openshift.com/container-platform/4.10/operators/operator_sdk/osdk-leader-election.html
+ leaderElection:
+ enabled: true
+
+ # Enable vertical pod autoscaler support for the manager
+ verticalPodAutoscaler:
+ enabled: false
+ # List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
+ controlledResources: []
+
+ # Define the max allowed resources for the pod
+ maxAllowed: {}
+ # cpu: 200m
+ # memory: 100Mi
+ # Define the min allowed resources for the pod
+ minAllowed: {}
+ # cpu: 200m
+ # memory: 100Mi
+
+ updatePolicy:
+ # Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
+ # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
+ updateMode: Auto
+ # Minimal number of replicas which need to be alive for Updater to attempt pod eviction.
+ # Only positive values are allowed. The default is 2.
+ minReplicas: 2
+ # Enable manager pod automatically rolling
+ rolling: false
+
+ ## Container specific securityContext
+ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
+ securityContext: {}
+ # allowPrivilegeEscalation: false
+ # capabilities:
+ # drop:
+ # - ALL
+
+## Provide OpenTelemetry Operator kube-rbac-proxy container image.
+##
+kubeRBACProxy:
+ enabled: true
+ image:
+ repository: quay.io/brancz/kube-rbac-proxy
+ tag: v0.15.0
+ ports:
+ proxyPort: 8443
+ resources:
+ limits:
+ cpu: 500m
+ memory: 128Mi
+ requests:
+ cpu: 5m
+ memory: 64Mi
+
+ ## List of additional cli arguments to configure the kube-rbac-proxy
+ ## for example: --tls-cipher-suites, --tls-min-version, etc.
+ extraArgs: []
+
+ ## Container specific securityContext
+ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
+ securityContext: {}
+ # allowPrivilegeEscalation: false
+ # capabilities:
+ # drop:
+ # - ALL
+
+## Admission webhooks make sure only requests with correctly formatted rules will get into the Operator.
+## They also enable the sidecar injection for OpenTelemetryCollector and Instrumentation CR's
+admissionWebhooks:
+ create: true
+ failurePolicy: Fail
+ enablePodOperationsWebhook: true
+ secretName: ""
+
+ ## Defines the sidecar injection logic in Pods.
+ ## - Ignore, the injection is fail-open. The pod will be created, but the sidecar won't be injected.
+ ## - Fail, the injection is fail-close. If the webhook pod is not ready, pods cannot be created.
+ pods:
+ failurePolicy: Ignore
+
+ ## Adds a prefix to the mutating webook name.
+ ## This can be used to order this mutating webhook with all your cluster's mutating webhooks.
+ namePrefix: ""
+
+ ## Customize webhook timeout duration
+ timeoutSeconds: 10
+
+ ## Provide selectors for your objects
+ namespaceSelector: {}
+ objectSelector: {}
+
+ ## https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/README.md#tls-certificate-requirement
+ ## TLS Certificate Option 1: Use certManager to generate self-signed certificate.
+ ## certManager must be enabled. If enabled, always takes precendence over options 2 and 3.
+ certManager:
+ enabled: true
+ ## Provide the issuer kind and name to do the cert auth job.
+ ## By default, OpenTelemetry Operator will use self-signer issuer.
+ issuerRef: {}
+ # kind:
+ # name:
+ ## Annotations for the cert and issuer if cert-manager is enabled.
+ certificateAnnotations: {}
+ issuerAnnotations: {}
+
+ ## TLS Certificate Option 2: Use Helm to automatically generate self-signed certificate.
+ ## certManager must be disabled and autoGenerateCert must be enabled.
+ ## If true and certManager.enabled is false, Helm will automatically create a self-signd cert and secret for you.
+ autoGenerateCert:
+ enabled: true
+ # If set to true, new webhook key/certificate is generated on helm upgrade.
+ recreate: true
+
+ ## TLS Certificate Option 3: Use your own self-signed certificate.
+ ## certManager and autoGenerateCert must be disabled and cert_file, key_file, and ca_file must be set.
+ ## Path to your own PEM-encoded certificate.
+ cert_file: ""
+ ## Path to your own PEM-encoded private key.
+ key_file: ""
+ ## Path to the CA cert.
+ ca_file: ""
+
+ ## Secret annotations
+ secretAnnotations: {}
+ ## Secret labels
+ secretLabels: {}
+
+## Create the provided Roles and RoleBindings
+##
+role:
+ create: true
+
+## Create the provided ClusterRoles and ClusterRoleBindings
+##
+clusterRole:
+ create: true
+
+affinity: {}
+tolerations: []
+nodeSelector: {}
+topologySpreadConstraints: []
+hostNetwork: false
+
+# Allows for pod scheduler prioritisation
+priorityClassName: ""
+
+## SecurityContext holds pod-level security attributes and common container settings.
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+securityContext:
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+ fsGroup: 65532
+
+testFramework:
+ image:
+ repository: busybox
+ tag: latest
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/NOTES.txt b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/NOTES.txt
new file mode 100644
index 00000000..f4ddcae5
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/NOTES.txt
@@ -0,0 +1,31 @@
+CHART NAME: {{ .Chart.Name }}
+CHART VERSION: {{ .Chart.Version }}
+APP VERSION: {{ .Chart.AppVersion }}
+
+** Please be patient while the chart is being deployed **
+
+The chart installs the following components
+
+1) OpenTelemetry Operator
+ Enabled: {{ index .Values "opentelemetry-operator" "enabled"}}
+
+2) AppDynamics Cloud Operator
+ Enabled: {{ index .Values "appdynamics-cloud-operator" "enabled" }}
+ Description: Uses custom resources to manage the life cycle of Cluster Collector, Infrastructure Collector and Log Collector.
+
+3) FSO Agent Management Orchestration Client
+ Enabled: {{ index .Values "appdynamics-smartagent" "enabled" }}
+ Description: Performs and manages operations of collector agents in a couple of ways
+ 1. create, update and delete agents provided in orchestration client config, it can work with multiple agents
+ 2. manages configuration by fetching it from the fso management solution and passing down to collector agents
+
+THIRD PARTY LICENSE DISCLOSURE
+===============================
+
+AppDynamics Cloud Operator
+--------------------------------------------------
+https://www.cisco.com/c/dam/en_us/about/doing_business/open_source/docs/AppDynamics_Cloud_Operator-2470-1721855602.pdf
+
+AppDynamics Cloud FSO Agent Management
+--------------------------------------------------
+https://www.cisco.com/c/dam/en_us/about/doing_business/open_source/docs/AppDynamics_Cloud_FSO_Agent_management-2440-1713932409.pdf
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/_helpers.tpl b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/_helpers.tpl
new file mode 100644
index 00000000..01f6fed4
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/_helpers.tpl
@@ -0,0 +1,63 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "appdynamics-operators.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "appdynamics-operators.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "appdynamics-operators.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "appdynamics-operators.labels" -}}
+helm.sh/chart: {{ include "appdynamics-operators.chart" . }}
+{{ include "appdynamics-operators.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "appdynamics-operators.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "appdynamics-operators.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "appdynamics-operators.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "appdynamics-operators.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/opentelemetry_operator_openshift_scc.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/opentelemetry_operator_openshift_scc.yaml
new file mode 100644
index 00000000..c562c0be
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/templates/opentelemetry_operator_openshift_scc.yaml
@@ -0,0 +1,22 @@
+{{ if .Capabilities.APIVersions.Has "security.openshift.io/v1/SecurityContextConstraints" -}}
+apiVersion: security.openshift.io/v1
+kind: SecurityContextConstraints
+metadata:
+ annotations:
+ kubernetes.io/description: 'opentelemetry-operator-privileged-scc is a custom SCC for OpenTelemetry Operator'
+ name: opentelemetry-operator-privileged-scc
+ namespace: {{ .Release.Namespace }}
+allowHostDirVolumePlugin: false
+allowHostIPC: false
+allowHostNetwork: false
+allowHostPID: false
+allowHostPorts: false
+allowPrivilegedContainer: false
+readOnlyRootFilesystem: true
+runAsUser:
+ type: MustRunAsNonRoot
+seLinuxContext:
+ type: MustRunAs
+users:
+- system:serviceaccount:{{ .Release.Namespace }}:{{index .Values "opentelemetry-operator" "manager" "serviceAccount" "name" | required "Service account name for Opentelemetry Operator manager is required" }}
+{{- end }}
\ No newline at end of file
diff --git a/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/values.yaml b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/values.yaml
new file mode 100644
index 00000000..6cc2e6b7
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/charts/appdynamics-operators/values.yaml
@@ -0,0 +1,25 @@
+appdynamics-cloud-operator:
+ enabled: true
+ operatorPod:
+ image: appdynamics/appdynamics-cloud-operator:24.7.0-1475
+ imagePullPolicy: Always
+ imagePullSecrets: []
+ nodeSelector:
+ kubernetes.io/os: linux
+ kubeRbacProxy: {}
+
+opentelemetry-operator:
+ enabled: true
+ nodeSelector:
+ kubernetes.io/os: linux
+ manager:
+ serviceAccount:
+ name: opentelemetry-operator
+
+appdynamics-smartagent:
+ enabled: true
+ # Manually setting the operator helm chart version.
+ # Temp fix until the smartagent is installed via the operator helm chart.
+ # Ultimately, customer will install only the smartagent helm chart.
+ # Operator helm chart will be installed via the smartagent (with Agent Mgmt UI).
+ helmChartVersion: 1.21.0
diff --git a/packs/appdynamics-operators-1.22.374/logo.png b/packs/appdynamics-operators-1.22.374/logo.png
new file mode 100644
index 00000000..1d1df310
Binary files /dev/null and b/packs/appdynamics-operators-1.22.374/logo.png differ
diff --git a/packs/appdynamics-operators-1.22.374/pack.json b/packs/appdynamics-operators-1.22.374/pack.json
new file mode 100644
index 00000000..61b955da
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/pack.json
@@ -0,0 +1,18 @@
+{
+ "addonType": "monitoring",
+ "annotations": {
+ "ingressSupported": "false",
+ "source": "community",
+ "contributor": "appdynamics"
+ },
+ "cloudTypes": [
+ "all"
+ ],
+ "charts": [
+ "charts/appdynamics-operators-1.22.374.tgz"
+ ],
+ "displayName": "Cisco AppDynamics Operators",
+ "layer": "addon",
+ "name": "cisco-appdynamics-operators",
+ "version": "1.22.374"
+}
diff --git a/packs/appdynamics-operators-1.22.374/values.yaml b/packs/appdynamics-operators-1.22.374/values.yaml
new file mode 100644
index 00000000..8134aa90
--- /dev/null
+++ b/packs/appdynamics-operators-1.22.374/values.yaml
@@ -0,0 +1,37 @@
+pack:
+ namespace: "appdynamics"
+ releaseNameOverride:
+ appdynamics-operators: operator
+ content:
+ images:
+ - image: appdynamics/appdynamics-cloud-operator:24.7.0-1475
+ charts:
+ - repo: https://appdynamics.jfrog.io/artifactory/appdynamics-cloud-helmcharts/
+ name: appdynamics-operators
+ version: 1.22.374
+charts:
+ appdynamics-operators:
+ global:
+ clusterName:
+ appdynamics-cloud-operator:
+ operatorPod:
+ image: appdynamics/appdynamics-cloud-operator:24.7.0-1475
+ imagePullPolicy: Always
+ imagePullSecrets: []
+ nodeSelector:
+ kubernetes.io/os: linux
+ kubeRbacProxy: {}
+ opentelemetry-operator:
+ nodeSelector:
+ kubernetes.io/os: linux
+ manager:
+ serviceAccount:
+ name: opentelemetry-operator
+ appdynamics-smartagent:
+ solution:
+ endpoint:
+ oauth:
+ clientId:
+ clientSecret:
+ tokenUrl:
+ tenantId: