<p>I'm trying to deploy the SCDF in Openshift using the Openshift Console. I'm following the instructions given in the following article,</p>

<p><a href="https://dataflow.spring.io/docs/installation/kubernetes/kubectl/#create-data-flow-role-bindings-and-service-account" rel="nofollow noreferrer">Deploying with kubectl</a>,</p>

<p>here there are 5 steps in order to successfully deploy the scdf in kubernates. My questions are, do we need all those steps to be executed.</p>

<p>Choose a Message Broker: </p>

<pre><code>   When would be this service required exactly? I don't understand it's use completely here in my spring batch app.
</code></pre>

<ol>
<li><p>Deploy MySQL</p>

<ul>
<li>Instead of executing this step, I plan to add my Oracle driver properties in
"src/kubernetes/server/server-config.yaml". Will this affect the application startup anyway?</li>
</ul></li>
<li><p>Deploy Prometheus and Grafana</p>

<ul>
<li>Removed them as it's not needed right now.</li>
</ul></li>
<li>Create Data Flow Role Bindings and Service Account

<ul>
<li>Though I executed this step, is it mandatory? I guess admins could add from the console itself, if i'm not wrong.</li>
</ul></li>
<li>Deploy Skipper

<ul>
<li>I'm using the Spring batch Application, and not using the streams. In case if its just spring batch application (with just readers, writers and listeners) do we still needs the skipper ?</li>
</ul></li>
<li>Deploy the Data Flow Server

<ul>
<li>Deploy this after all odds above.</li>
</ul></li>
</ol>

<p><strong>Update</strong></p>

<pre><code>src/kubernetes/server/server-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: scdf-server
  labels:
    app: scdf-server
data:
  application.yaml: |-
    spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:
                  default:
                    limits:
                      memory: 1024Mi
      **datasource:
        url: jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/mysql
        username: root
        password: ${mysql-root-password}
        driverClassName: org.mariadb.jdbc.Driver
        testOnBorrow: true
        validationQuery: "SELECT 1"**
</code></pre>

Rajesh2389
<p>Please take some time to review the <a href="https://dataflow.spring.io/docs/concepts/architecture/" rel="nofollow noreferrer">concepts and architecture</a> specifics from the docs.</p>

<p>A message broker is only required when you're using the streaming capabilities in SCDF. Skipper is required only also for streaming use-cases, so you can ignore both.</p>

<p>On that topic, we have a <a href="https://dataflow.spring.io/docs/recipes/batch/batch-only-mode/" rel="nofollow noreferrer">batch-only recipe</a> to help highlight the differences. While the recipe itself is targeted for local deployment experience, it'd be similar for K8s as far as you're setting the right feature-toggle properties in SCDF.</p>

<p>1) you can use any of the supported <a href="https://dataflow.spring.io/docs/concepts/architecture/#database" rel="nofollow noreferrer">RDBMS options</a>.</p>

<p>2) If you don't need it, sure.</p>

<p>3) It is required. An admin or someone with enough privileges can help set it up once for the given SCDF deployment, so the CRUD operations are governed within the cluster boundaries. </p>

<p>4) You don't need it if you're on batch-only mode.</p>
