Add ensure-java role

Change-Id: Ibaf45bd09a47d55ce21af34763563c20f9396cd2
diff --git a/playbooks/gerrit-base/pre.yaml b/playbooks/gerrit-base/pre.yaml
index a15f0eb..09cf16c 100644
--- a/playbooks/gerrit-base/pre.yaml
+++ b/playbooks/gerrit-base/pre.yaml
@@ -2,4 +2,5 @@
   hosts: all
   roles:
     - ensure-bazelisk
+    - ensure-java
     - prepare-gerrit-repos
diff --git a/playbooks/test-ensure-java.yaml b/playbooks/test-ensure-java.yaml
new file mode 100644
index 0000000..fd73370
--- /dev/null
+++ b/playbooks/test-ensure-java.yaml
@@ -0,0 +1,6 @@
+- hosts: all
+  roles:
+    - ensure-java
+  tasks:
+    - name: Print java version
+      command: java -fullversion
diff --git a/roles/ensure-java/README.rst b/roles/ensure-java/README.rst
new file mode 100644
index 0000000..08eeb43
--- /dev/null
+++ b/roles/ensure-java/README.rst
@@ -0,0 +1,10 @@
+Ensure that Java is installed
+
+Installs the specified version of the JDK.
+
+**Role Variables**
+
+.. zuul:rolevar:: java_version
+   :default: 8
+
+   Version of Java to install.
diff --git a/roles/ensure-java/defaults/main.yaml b/roles/ensure-java/defaults/main.yaml
new file mode 100644
index 0000000..9ed782d
--- /dev/null
+++ b/roles/ensure-java/defaults/main.yaml
@@ -0,0 +1 @@
+java_version: 8
diff --git a/roles/ensure-java/tasks/main.yaml b/roles/ensure-java/tasks/main.yaml
new file mode 100644
index 0000000..a0d4366
--- /dev/null
+++ b/roles/ensure-java/tasks/main.yaml
@@ -0,0 +1,5 @@
+- name: Install JDK
+  become: true
+  package:
+    name: openjdk-{{ java_version }}-jdk
+    state: present
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 2c55f4a..83cf94c 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -2,4 +2,5 @@
     check:
       jobs:
         - test-ensure-bazelisk
+        - test-ensure-java
         - test-gerrit-base
diff --git a/zuul.d/test-jobs.yaml b/zuul.d/test-jobs.yaml
index e6765df..8dfdea9 100644
--- a/zuul.d/test-jobs.yaml
+++ b/zuul.d/test-jobs.yaml
@@ -16,11 +16,20 @@
       - playbooks/test-ensure-bazelisk.yaml
 
 - job:
+    name: test-ensure-java
+    run: playbooks/test-ensure-java.yaml
+    nodeset: temp-debian
+    files:
+      - roles/ensure-java/.*
+      - playbooks/test-ensure-java.yaml
+
+- job:
     name: test-gerrit-base
     parent: gerrit-base
     run: playbooks/test-gerrit-base.yaml
     nodeset: temp-debian
     files:
       - roles/ensure-bazelisk/.*
+      - roles/ensure-java/.*
       - roles/prepare-gerrit-repos/.*
       - playbooks/test-gerrit-base.yaml