Snippets

Maxim Burgerhout Template for Forum Demo

Created by Maxim Burgerhout last modified
apiVersion: v1
kind: Template
parameters:
- name: PROJECT_NAME
- name: API_KEY
metadata:
  name: s2i-springboot-demo
  annotations:
    tags: "instant-app,java,s2i,spring,springboot"
objects:
- apiVersion: v1
  kind: ServiceAccount
  metadata:
    labels:
      project: ${PROJECT_NAME}
    name: popular-movie-store
- apiVersion: v1
  kind: RoleBinding
  metadata:
    labels:
      project: ${PROJECT_NAME}
    name: popular-movie-store
  roleRef:
    name: view
  subjects:
  - kind: ServiceAccount
    name: default
  - kind: ServiceAccount
    name: popular-movie-store
- apiVersion: v1
  kind: Secret
  metadata:
    labels:
      project: ${PROJECT_NAME}
    name: popular-movie-store
  data:
    apiKey: ${API_KEY}
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      project: ${PROJECT_NAME}
    name: popular-movie-store-s2i
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: popular-movie-store:latest
    runPolicy: Serial
    source:
      git:
        uri: https://github.com/wzzrd/popular-movie-store
        branch: demotest1
    strategy:
      sourceStrategy:
        from:
          kind: DockerImage
          name: fabric8/s2i-java:2.0
      type: Source
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    labels:
      project: ${PROJECT_NAME}
    name: popular-movie-store
  spec:
    replicas: 2
    selector:
      project: ${PROJECT_NAME}
    strategy:
      activeDeadlineSeconds: 21600
      rollingParams:
        intervalSeconds: 1
        maxSurge: 25%
        maxUnavailable: 25%
        timeoutSeconds: 600
        updatePeriodSeconds: 1
      type: Rolling
    template:
      metadata:
        labels:
          project: ${PROJECT_NAME}
      spec:
        containers:
        - env:
          - name: JAVA_OPTIONS
            value: -Xms128m -Xmx512m -Djava.net.preferIPv4Stack=true
          - name: OPENSHIFT_KUBE_PING_LABELS
            value: project=${PROJECT_NAME}
          - name: OPENSHIFT_KUBE_PING_NAMESPACE
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
          - name: API_KEY
            valueFrom:
              secretKeyRef:
                key: apiKey
                name: popular-movie-store
          - name: KUBERNETES_NAMESPACE
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
          imagePullPolicy: IfNotPresent
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /healthz
              port: http
              scheme: HTTP
            initialDelaySeconds: 60
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          name: popular-movie-store
          ports:
          - containerPort: 8080
            name: http
            protocol: TCP
          - containerPort: 8888
            name: jgroups-cluster
            protocol: TCP
          - containerPort: 8778
            name: jolokia-port
            protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /healthz
              port: http
              scheme: HTTP
            initialDelaySeconds: 60
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          resources: {}
          securityContext:
            privileged: false
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        schedulerName: default-scheduler
        securityContext: {}
        serviceAccount: popular-movie-store
        serviceAccountName: popular-movie-store
        terminationGracePeriodSeconds: 30
        volumes:
        - configMap:
            defaultMode: 420
            items:
            - key: application.yml
              path: application.yml
            name: popular-movie-store
          name: config
    test: false
    triggers:
    - type: ConfigChange
    - imageChangeParams:
        automatic: true
        containerNames:
        - popular-movie-store
        from:
          kind: ImageStreamTag
          name: popular-movie-store:latest
          namespace: ${PROJECT_NAME}
      type: ImageChange
- apiVersion: v1
  kind: ImageStream
  metadata:
    labels:
      project: ${PROJECT_NAME}
    name: popular-movie-store
  spec:
    lookupPolicy:
      local: false
    tags:
    - annotations: null
      from:
        kind: DockerImage
        name: popular-movie-store:latest
      name: latest
- apiVersion: v1
  kind: Route
  metadata:
    labels:
      expose: "true"
      project: ${PROJECT_NAME}
    name: popular-movie-store
  spec:
    port:
      targetPort: 8080
    to:
      kind: Service
      name: popular-movie-store
      weight: 100
    wildcardPolicy: None
- apiVersion: v1
  kind: Service
  metadata:
    labels:
      expose: "true"
      project: ${PROJECT_NAME}
    name: popular-movie-store
  spec:
    ports:
    - name: http
      port: 8080
      protocol: TCP
      targetPort: 8080
    selector:
      project: ${PROJECT_NAME}
    sessionAffinity: None
    type: NodePort
- apiVersion: v1
  data:
    application.yml: |
      infinispan:
        embedded:
          config-xml: infinispan-moviestore.xml
      spring:
        thymeleaf:
          mode: HTML
          cache: false
  kind: ConfigMap
  metadata:
    creationTimestamp: null
    name: popular-movie-store

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.