|
@@ -0,0 +1,170 @@
|
|
|
+---
|
|
|
+apiVersion: template.openshift.io/v1
|
|
|
+kind: Template
|
|
|
+metadata:
|
|
|
+ name: openshift-monitor-app-create
|
|
|
+ annotations:
|
|
|
+ openshift.io/display-name: OpenShift App Create Availability Monitor
|
|
|
+ description: Measures app create operation availability.
|
|
|
+ iconClass: icon-openshift
|
|
|
+ tags: openshift,infra,monitoring
|
|
|
+ openshift.io/documentation-url: https://github.com/openshift/monitor-project-lifecycle
|
|
|
+ openshift.io/support-url: https://access.redhat.com
|
|
|
+openshift.io/provider-display-name: Red Hat, Inc.
|
|
|
+parameters:
|
|
|
+- name: IMAGE
|
|
|
+ description: The application container image to use.
|
|
|
+ required: true
|
|
|
+- name: LOG_LEVEL
|
|
|
+ value: "0"
|
|
|
+ description: Application logging level.
|
|
|
+- name: RUN_INTERVAL
|
|
|
+ value: "5m"
|
|
|
+ description: How often to run the measurement loop, as a duration string.
|
|
|
+- name: TIMEOUT
|
|
|
+ value: "5m"
|
|
|
+ description: How long to wait for the test app to become available before giving up.
|
|
|
+- name: NAMESPACE
|
|
|
+ # This namespace cannot be changed.
|
|
|
+ value: openshift-monitor-availability
|
|
|
+objects:
|
|
|
+- apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
|
+ kind: ClusterRole
|
|
|
+ metadata: {name: monitor-app-create}
|
|
|
+ rules:
|
|
|
+ # These are for the auth proxy.
|
|
|
+ - apiGroups: ["authentication.k8s.io"]
|
|
|
+ resources:
|
|
|
+ - tokenreviews
|
|
|
+ verbs: ["create"]
|
|
|
+ - apiGroups: ["authorization.k8s.io"]
|
|
|
+ resources:
|
|
|
+ - subjectaccessreviews
|
|
|
+ verbs: ["create"]
|
|
|
+ # These are for the app itself.
|
|
|
+ - apiGroups: [project.openshift.io]
|
|
|
+ resources: [projects, projectrequests]
|
|
|
+ verbs: ['*']
|
|
|
+
|
|
|
+- apiVersion: v1
|
|
|
+ kind: ServiceAccount
|
|
|
+ metadata:
|
|
|
+ name: monitor-app-create
|
|
|
+ namespace: ${NAMESPACE}
|
|
|
+
|
|
|
+- apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
|
+ kind: ClusterRoleBinding
|
|
|
+ metadata:
|
|
|
+ name: monitor-app-create
|
|
|
+ roleRef:
|
|
|
+ apiGroup: rbac.authorization.k8s.io
|
|
|
+ kind: ClusterRole
|
|
|
+ name: monitor-app-create
|
|
|
+ subjects:
|
|
|
+ - kind: ServiceAccount
|
|
|
+ name: monitor-app-create
|
|
|
+ namespace: ${NAMESPACE}
|
|
|
+
|
|
|
+- apiVersion: v1
|
|
|
+ kind: Service
|
|
|
+ metadata:
|
|
|
+ name: monitor-app-create
|
|
|
+ namespace: ${NAMESPACE}
|
|
|
+ labels:
|
|
|
+ k8s-app: monitor-app-create
|
|
|
+ annotations:
|
|
|
+ service.alpha.openshift.io/serving-cert-secret-name: monitor-app-create-tls
|
|
|
+ spec:
|
|
|
+ ports:
|
|
|
+ - name: http-metrics
|
|
|
+ port: 443
|
|
|
+ protocol: TCP
|
|
|
+ targetPort: https
|
|
|
+ selector:
|
|
|
+ k8s-app: monitor-app-create
|
|
|
+
|
|
|
+- apiVersion: v1
|
|
|
+ kind: ConfigMap
|
|
|
+ metadata:
|
|
|
+ name: monitor-app-create
|
|
|
+ namespace: ${NAMESPACE}
|
|
|
+ labels:
|
|
|
+ k8s-app: monitor-app-create
|
|
|
+ data:
|
|
|
+ config.yaml: |
|
|
|
+ listenAddress: "127.0.0.1:8080"
|
|
|
+ runInterval: "${RUN_INTERVAL}"
|
|
|
+ availabilityTimeout: "${TIMEOUT}"
|
|
|
+ template:
|
|
|
+ namespace: openshift
|
|
|
+ name: django-psql-persistent
|
|
|
+ availabilityRoute: django-psql-persistent
|
|
|
+ parameters: # Empty, use template defaults
|
|
|
+
|
|
|
+- apiVersion: extensions/v1beta1
|
|
|
+ kind: Deployment
|
|
|
+ metadata:
|
|
|
+ name: monitor-app-create
|
|
|
+ namespace: ${NAMESPACE}
|
|
|
+ labels:
|
|
|
+ k8s-app: monitor-app-create
|
|
|
+ spec:
|
|
|
+ replicas: 1
|
|
|
+ selector:
|
|
|
+ matchLabels:
|
|
|
+ k8s-app: monitor-app-create
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ k8s-app: monitor-app-create
|
|
|
+ spec:
|
|
|
+ serviceAccountName: monitor-app-create
|
|
|
+ volumes:
|
|
|
+ - name: config
|
|
|
+ configMap:
|
|
|
+ name: monitor-app-create
|
|
|
+ - name: tls
|
|
|
+ secret:
|
|
|
+ secretName: monitor-app-create-tls
|
|
|
+ containers:
|
|
|
+ - name: monitor-app-create
|
|
|
+ image: ${IMAGE}
|
|
|
+ command:
|
|
|
+ - "/usr/bin/monitor"
|
|
|
+ - "run"
|
|
|
+ - "--alsologtostderr"
|
|
|
+ - "--v"
|
|
|
+ - "${LOG_LEVEL}"
|
|
|
+ - "--config"
|
|
|
+ - "/etc/monitor-app-create/config.yaml"
|
|
|
+ volumeMounts:
|
|
|
+ - name: config
|
|
|
+ mountPath: /etc/monitor-app-create
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ cpu: 20m
|
|
|
+ memory: 50Mi
|
|
|
+ requests:
|
|
|
+ cpu: 20m
|
|
|
+ memory: 50Mi
|
|
|
+ - name: kube-rbac-proxy
|
|
|
+ image: quay.io/coreos/kube-rbac-proxy:v0.3.0
|
|
|
+ args:
|
|
|
+ - "--secure-listen-address=:8081"
|
|
|
+ - "--upstream=http://127.0.0.1:8080/"
|
|
|
+ - "--tls-cert-file=/etc/tls/private/tls.crt"
|
|
|
+ - "--tls-private-key-file=/etc/tls/private/tls.key"
|
|
|
+ ports:
|
|
|
+ - name: https
|
|
|
+ containerPort: 8081
|
|
|
+ protocol: TCP
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ memory: 20Mi
|
|
|
+ cpu: 10m
|
|
|
+ limits:
|
|
|
+ memory: 40Mi
|
|
|
+ cpu: 20m
|
|
|
+ volumeMounts:
|
|
|
+ - mountPath: /etc/tls/private
|
|
|
+ name: tls
|