Create a Composite Deployment Container
Before creating a Kubernetes pod, make sure that the Oracle SOA Suite Docker image is available on a node, or you can create an image pull secret so that the pod can pull the Docker image on the host where it gets created.
- Create an image pull secret to pull image soasuite:release-version by the
Kubernetes pod:
kubectl create secret docker-registry image-secret -n soans --docker-server=your-registry.com --docker-username=xxxxxx --docker-password=xxxxxxx --docker-email=my@company.com
- Create a PersistentVolume and PersistentVolumeClaim
(
soadeploy-pv.yaml
andsoadeploy-pvc.yaml
) with sample composites for build and deploy placed at/share/soa-deploy
.- Create a PersistentVolume with the sample provided
(
soadeploy-pv.yaml
), which uses NFS (you can usehostPath
or any other supported PV type):apiVersion: v1 kind: PersistentVolume metadata: name: soadeploy-pv spec: storageClassName: soadeploy-storage-class capacity: storage: 10Gi accessModes: - ReadWriteMany # Valid values are Retain, Delete or Recycle persistentVolumeReclaimPolicy: Retain # hostPath: nfs: server: X.X.X.X path: "/share/soa-deploy"
- Apply the YAML:
kubectl apply -f soadeploy-pv.yaml
- Create a PersistentVolumeClaim (soadeploy-pvc.yaml):
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: soadeploy-pvc namespace: soans spec: storageClassName: soadeploy-storage-class accessModes: - ReadWriteMany resources: requests: storage: 10Gi
- Apply the YAML:
kubectl apply -f soadeploy-pvc.yaml
- Create a PersistentVolume with the sample provided
(
- Create a composite deploy pod using
soadeploy.yam
l to mount the composites inside pod at/composites
:apiVersion: v1 kind: Pod metadata: labels: run: soadeploy name: soadeploy namespace: soans spec: imagePullSecrets: - name: image-secret containers: - image: soasuite:release-version name: soadeploy env: - name: M2_HOME value: /u01/oracle/oracle_common/modules/thirdparty/apache-maven_bundle/3.9.4.0.0/apache-maven-3.9.4 command: ["/bin/bash", "-c", "echo 'export PATH=$PATH:$M2_HOME/bin' >> $HOME/.bashrc; sleep infinity"] imagePullPolicy: IfNotPresent volumeMounts: - name: mycomposite mountPath: /composites volumes: - name: mycomposite persistentVolumeClaim: claimName: soadeploy-pvc
- Create the pod:
kubectl apply -f soadeploy.yaml
- Once the Kubernetes pod is deployed, exec into the pod to perform Maven/Ant
based build and deploy:
kubectl exec -it -n soans soadeploy -- bash