|
@@ -0,0 +1,254 @@
|
|
|
+#
|
|
|
+# Copyright 2016-2017 Red Hat, Inc. and/or its affiliates
|
|
|
+# and other contributors as indicated by the @author tags.
|
|
|
+#
|
|
|
+# 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.
|
|
|
+#
|
|
|
+
|
|
|
+apiVersion: v1
|
|
|
+kind: Template
|
|
|
+metadata:
|
|
|
+ name: hawkular-services
|
|
|
+ annotations:
|
|
|
+ openshift.io/display-name: Hawkular Services
|
|
|
+ description: Hawkular-Services all-in-one (including Hawkular Metrics, Hawkular Alerts and Hawkular Inventory).
|
|
|
+ iconClass: icon-wildfly
|
|
|
+ tags: hawkular,hawkular-services,metrics,alerts,manageiq,cassandra
|
|
|
+
|
|
|
+parameters:
|
|
|
+- name: HAWKULAR_SERVICES_IMAGE
|
|
|
+ description: What docker image should be used for hawkular-services.
|
|
|
+ displayName: Hawkular Services Docker Image
|
|
|
+ value: registry.access.redhat.com/jboss-mm-7-tech-preview/middleware-manager:latest
|
|
|
+- name: CASSANDRA_IMAGE
|
|
|
+ description: What docker image should be used for cassandra node.
|
|
|
+ displayName: Cassandra Docker Image
|
|
|
+ value: registry.access.redhat.com/openshift3/metrics-cassandra:3.4.0
|
|
|
+- name: CASSANDRA_MEMORY_LIMIT
|
|
|
+ description: Maximum amount of memory for Cassandra container.
|
|
|
+ displayName: Cassandra Memory Limit
|
|
|
+ value: 2Gi
|
|
|
+- name: CASSANDRA_DATA_LIMIT
|
|
|
+ description: Maximum amount data used by Cassandra container.
|
|
|
+ displayName: Cassandra Container Data Limit
|
|
|
+ value: 2Gi
|
|
|
+- name: HAWKULAR_SERVICES_DATA_LIMIT
|
|
|
+ description: Maximum amount data used by hawkular-services container (mostly logging).
|
|
|
+ displayName: Hawkular Services Container Data Limit
|
|
|
+ value: 1Gi
|
|
|
+- name: ROUTE_NAME
|
|
|
+ description: Public route with this name will be created.
|
|
|
+ displayName: Route Name
|
|
|
+ value: hawkular-services
|
|
|
+- name: ROUTE_HOSTNAME
|
|
|
+ description: Under this hostname the Hawkular Services will be accessible, if left blank a value will be defaulted.
|
|
|
+ displayName: Hostname
|
|
|
+- name: HAWKULAR_USER
|
|
|
+ description: Username that is used for accessing the Hawkular Services, if left blank a value will be generated.
|
|
|
+ displayName: Hawkular User
|
|
|
+ from: '[a-zA-Z0-9]{16}'
|
|
|
+ generate: expression
|
|
|
+- name: HAWKULAR_PASSWORD
|
|
|
+ description: Password that is used for accessing the Hawkular Services, if left blank a value will be generated.
|
|
|
+ displayName: Hawkular Password
|
|
|
+ from: '[a-zA-Z0-9]{16}'
|
|
|
+ generate: expression
|
|
|
+labels:
|
|
|
+ template: hawkular-services
|
|
|
+message: Credentials for hawkular-services are ${HAWKULAR_USER}:${HAWKULAR_PASSWORD}
|
|
|
+
|
|
|
+objects:
|
|
|
+- apiVersion: v1
|
|
|
+ kind: Service
|
|
|
+ metadata:
|
|
|
+ annotations:
|
|
|
+ description: Exposes and load balances the application pods
|
|
|
+ service.alpha.openshift.io/dependencies: '[{"name":"hawkular-cassandra","namespace":"","kind":"Service"}]'
|
|
|
+ name: hawkular-services
|
|
|
+ spec:
|
|
|
+ ports:
|
|
|
+ - name: http-8080-tcp
|
|
|
+ port: 8080
|
|
|
+ protocol: TCP
|
|
|
+ targetPort: 8080
|
|
|
+ - name: admin-9990-tcp
|
|
|
+ port: 9990
|
|
|
+ protocol: TCP
|
|
|
+ targetPort: 9990
|
|
|
+ selector:
|
|
|
+ name: hawkular-services
|
|
|
+ type: ClusterIP
|
|
|
+- apiVersion: v1
|
|
|
+ kind: Service
|
|
|
+ metadata:
|
|
|
+ annotations:
|
|
|
+ description: Cassandra Service
|
|
|
+ name: hawkular-cassandra
|
|
|
+ spec:
|
|
|
+ ports:
|
|
|
+ - name: cql-9042-tcp
|
|
|
+ port: 9042
|
|
|
+ protocol: TCP
|
|
|
+ targetPort: 9042
|
|
|
+ selector:
|
|
|
+ name: hawkular-cassandra
|
|
|
+- apiVersion: v1
|
|
|
+ kind: Route
|
|
|
+ metadata:
|
|
|
+ name: ${ROUTE_NAME}
|
|
|
+ spec:
|
|
|
+ host: ${ROUTE_HOSTNAME}
|
|
|
+ to:
|
|
|
+ kind: Service
|
|
|
+ name: hawkular-services
|
|
|
+ port:
|
|
|
+ targetPort: http-8080-tcp
|
|
|
+
|
|
|
+- apiVersion: v1
|
|
|
+ kind: DeploymentConfig
|
|
|
+ metadata:
|
|
|
+ annotations:
|
|
|
+ description: Defines how to deploy the application server
|
|
|
+ name: hawkular-services
|
|
|
+ spec:
|
|
|
+ replicas: 1
|
|
|
+ selector:
|
|
|
+ name: hawkular-services
|
|
|
+ strategy:
|
|
|
+ type: Rolling
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ name: hawkular-services
|
|
|
+ spec:
|
|
|
+ containers:
|
|
|
+ - image: ${HAWKULAR_SERVICES_IMAGE}
|
|
|
+ env:
|
|
|
+ - name: HAWKULAR_BACKEND
|
|
|
+ value: remote
|
|
|
+ - name: CASSANDRA_NODES
|
|
|
+ value: hawkular-cassandra
|
|
|
+ - name: HAWKULAR_USER
|
|
|
+ value: ${HAWKULAR_USER}
|
|
|
+ - name: HAWKULAR_PASSWORD
|
|
|
+ value: ${HAWKULAR_PASSWORD}
|
|
|
+ imagePullPolicy: IfNotPresent
|
|
|
+ name: hawkular-services
|
|
|
+ volumeMounts:
|
|
|
+ - name: h-services-data
|
|
|
+ mountPath: /var/opt/hawkular
|
|
|
+ ports:
|
|
|
+ - containerPort: 8080
|
|
|
+ - containerPort: 9990
|
|
|
+ livenessProbe:
|
|
|
+ exec:
|
|
|
+ command:
|
|
|
+ - /opt/hawkular/bin/ready.sh
|
|
|
+ initialDelaySeconds: 180
|
|
|
+ timeoutSeconds: 3
|
|
|
+ readinessProbe:
|
|
|
+ exec:
|
|
|
+ command:
|
|
|
+ - /opt/hawkular/bin/ready.sh
|
|
|
+ initialDelaySeconds: 120
|
|
|
+ timeoutSeconds: 3
|
|
|
+ periodSeconds: 5
|
|
|
+ successThreshold: 1
|
|
|
+ failureThreshold: 12
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ memory: 1024Mi
|
|
|
+ cpu: 2000m
|
|
|
+ dnsPolicy: ClusterFirst
|
|
|
+ restartPolicy: Always
|
|
|
+ volumes:
|
|
|
+ - name: h-services-data
|
|
|
+ persistentVolumeClaim:
|
|
|
+ claimName: h-services-pvc
|
|
|
+
|
|
|
+- apiVersion: v1
|
|
|
+ kind: DeploymentConfig
|
|
|
+ metadata:
|
|
|
+ annotations:
|
|
|
+ description: Defines how to deploy the cassandra
|
|
|
+ name: hawkular-cassandra
|
|
|
+ spec:
|
|
|
+ replicas: 1
|
|
|
+ selector:
|
|
|
+ name: hawkular-cassandra
|
|
|
+ strategy:
|
|
|
+ type: Recreate
|
|
|
+ rollingParams:
|
|
|
+ timeoutSeconds: 300
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ name: hawkular-cassandra
|
|
|
+ spec:
|
|
|
+ containers:
|
|
|
+ - image: ${CASSANDRA_IMAGE}
|
|
|
+ imagePullPolicy: Always
|
|
|
+ name: hawkular-cassandra
|
|
|
+ env:
|
|
|
+ - name: DATA_VOLUME
|
|
|
+ value: /var/lib/cassandra
|
|
|
+ volumeMounts:
|
|
|
+ - name: cassandra-data
|
|
|
+ mountPath: /var/lib/cassandra
|
|
|
+ ports:
|
|
|
+ - containerPort: 9042
|
|
|
+ - containerPort: 9160
|
|
|
+ readinessProbe:
|
|
|
+ exec:
|
|
|
+ command: ['nodetool', 'status']
|
|
|
+ initialDelaySeconds: 30
|
|
|
+ timeoutSeconds: 10
|
|
|
+ periodSeconds: 15
|
|
|
+ successThreshold: 1
|
|
|
+ failureThreshold: 3
|
|
|
+ livenessProbe:
|
|
|
+ exec:
|
|
|
+ command: ['nodetool', 'status']
|
|
|
+ initialDelaySeconds: 300
|
|
|
+ timeoutSeconds: 10
|
|
|
+ periodSeconds: 15
|
|
|
+ successThreshold: 1
|
|
|
+ failureThreshold: 3
|
|
|
+ resources:
|
|
|
+ limits:
|
|
|
+ memory: ${CASSANDRA_MEMORY_LIMIT}
|
|
|
+ volumes:
|
|
|
+ - name: cassandra-data
|
|
|
+ persistentVolumeClaim:
|
|
|
+ claimName: cassandra-pvc
|
|
|
+
|
|
|
+- apiVersion: v1
|
|
|
+ kind: PersistentVolumeClaim
|
|
|
+ metadata:
|
|
|
+ name: h-services-pvc
|
|
|
+ spec:
|
|
|
+ accessModes:
|
|
|
+ - ReadWriteOnce
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ storage: 1Gi
|
|
|
+- apiVersion: v1
|
|
|
+ kind: PersistentVolumeClaim
|
|
|
+ metadata:
|
|
|
+ name: cassandra-pvc
|
|
|
+ spec:
|
|
|
+ accessModes:
|
|
|
+ - ReadWriteOnce
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ storage: 1Gi
|