merged slurm_dockerimage back into slurm role

This commit is contained in:
2021-06-22 00:26:00 +02:00
parent f83801cb62
commit 78850d4636
9 changed files with 40 additions and 105 deletions

View File

@@ -1,6 +1,9 @@
- include_vars: cobald-slurm.yml
when: cobald_slurm | default(False)
# FIXME: replace below by
# - include_role: slurm
# tasks_from: dockerimage
- file:
path: "/container/{{item.name}}/cobald{{item.pfx|default('')}}/"
state: directory

View File

@@ -1,50 +1,24 @@
- file:
path: "/container/docker-images/slurm"
state: directory
owner: "{{unpriv_user}}"
group: docker
- copy: # FIXME: template
src: "{{image.name}}.Dockerfile"
dest: "/container/docker-images/slurm/{{image.name}}.Dockerfile"
owner: "{{unpriv_user}}"
group: docker
register: slurm_cp_dockerfile
- name: copy entrypoint and docker-init
copy: # FIXME: swap out
src: "{{item}}"
dest: "/container/docker-images/slurm/{{item}}"
owner: root
group: root
mode: u=rwx,g=rx,o=rx
loop:
- entrypoint.sh
- docker-init
register: slurm_cp_entrypt
- name: copy startup scripts
copy:
src: "start-scripts/"
dest: "/container/docker-images/slurm/start-scripts/"
owner: root
group: root
mode: u=rwx,g=rx,o=rx
register: slurm_cp_stscrs
- name: build slurm base docker image
include_tasks: dockerimage_build.yml
vars:
image_name: base
dockerfile: slurm-base.Dockerfile
files:
- dest: entrypoint.sh
content: "{{ lookup('file', 'entrypoint.sh') }}"
- dest: entry-munge.sh
content: "{{ lookup('file', 'entry-munge.sh') }}"
- dest: docker-init
content: "{{ lookup('file', 'docker-init') }}"
- dest: start-scripts/10-munge
content: "{{ lookup('file', 'start-scripts/10-munge') }}"
register: slurm_baseimg_build
when: not slurm_baseimg_build_chg | default(False)
- set_fact:
slurm_image_files_changed: "{{ (slurm_image_files_changed | default(False))
or slurm_cp_entrypt.changed or slurm_cp_stscrs.changed }}"
- docker_image:
name: "slurm"
tag: "{{image.name}}"
# pull: False
build:
pull: False
path: "/container/docker-images/slurm/"
dockerfile: "{{image.name}}.Dockerfile"
# target: "{{image.name}}" # unsupported on old docker-py version as in el7
source: build
force_source: "{{slurm_cp_dockerfile.changed or slurm_image_files_changed}}"
slurm_baseimg_build_chg:
"{{(slurm_baseimg_build_chg | default(False)) or
slurm_baseimg_build.changed}}"
- name: "build slurm base docker image {{name}}"
include_tasks: dockerimage_build.yml

View File

@@ -1,16 +1,16 @@
- name: create directories for docker image build
file:
path: "/container/docker-images/slurm-{{image.name}}/{{item}}"
path: "/container/docker-images/slurm-{{image_name}}/{{item}}"
state: directory
owner: "{{unpriv_user}}"
group: docker
loop: "{{ [''] + (image.files | map(attribute='dest') | map('dirname') |
loop: "{{ [''] + (files | map(attribute='dest') | map('dirname') |
unique | select | list) }}"
- name: copy Dockerfile
copy:
src: "{{image.name}}.Dockerfile"
dest: "/container/docker-images/slurm-{{image.name}}/Dockerfile"
src: "{{image_name}}.Dockerfile"
dest: "/container/docker-images/slurm-{{image_name}}/Dockerfile"
owner: "{{unpriv_user}}"
group: docker
register: slurm_cp_dockerfile
@@ -18,23 +18,23 @@
- name: copy requisite files
copy:
content: "{{ item.content }}"
dest: "/container/docker-images/slurm-{{image.name}}/{{item.dest}}"
dest: "/container/docker-images/slurm-{{image_name}}/{{item.dest}}"
owner: root
group: root
mode: u=rwx,g=rx,o=rx
loop: "{{ image.files | default([]) }}"
loop: "{{ files | default([]) }}"
loop_control:
label: "{{ item.dest }}"
register: slurm_cp_files
- docker_image:
name: "slurm"
tag: "{{image.name}}"
tag: "{{image_name}}"
# pull: False
build:
pull: False
path: "/container/docker-images/slurm-{{image.name}}/"
path: "/container/docker-images/slurm-{{image_name}}/"
source: build
force_source: "{{slurm_cp_dockerfile.changed or
slurm_cp_files.changed or
slurm_baseimg_build_chg }}"
slurm_baseimg_build_chg | default(False) }}"

View File

@@ -3,9 +3,9 @@
name: [ slurm, slurm-doc ]
state: present
- include_role:
name: slurm_dockerimage
loop: # FIXME: default(omit)!
- include_tasks:
file: dockerimage.yml
loop:
- name: slurmctld
dockerfile: "{{ lookup('file', 'slurmctld.Dockerfile') }}"
files:
@@ -16,6 +16,10 @@
files:
- dest: start-scripts/30-slurmd
content: "{{ lookup('file', 'start-scripts/30-slurmd') }}"
vars:
image_name: "{{image.name | default(omit) }}"
dockerfile: "{{image.dockerfile | default(omit) }}"
files: "{{image.files | default(omit) }}"
loop_control:
loop_var: image
label: "{{ image.name }}"

View File

@@ -1,46 +0,0 @@
- file:
path: "/container/docker-images/slurm-base/start-scripts"
state: directory
owner: "{{unpriv_user}}"
group: docker
# - name: copy Dockerfile, entrypoint, docker-init and munge startup
- name: copy slurm base image requisite files
copy: # FIXME: swap out
src: "{{item.file}}"
dest: "/container/docker-images/slurm-base/{{item.file}}"
owner: "{{unpriv_user}}"
group: docker
mode: "{{ item.perms | default('u=rwx,g=rx,o=rx') }}"
loop:
- file: slurm-base.Dockerfile
perms: u=rw,g=r,o=r
- file: entrypoint.sh
- file: entry-munge.sh
- file: docker-init
- file: start-scripts/10-munge
when: not (slurm_baseimg_build_chg | default(False))
register: slurm_baseimg_copy
- name: build base image
docker_image:
name: "slurm"
tag: "base"
# pull: False
build:
pull: False
path: "/container/docker-images/slurm-base/"
dockerfile: "slurm-base.Dockerfile"
# target: "{{image.name}}" # unsupported on old docker-py version as in el7
source: build
force_source: "{{slurm_baseimg_copy.changed}}"
# when: run only once but keep changed state
when: not (slurm_baseimg_build_chg | default(False))
register: slurm_baseimg_build
- set_fact:
slurm_baseimg_build_chg:
"{{(slurm_baseimg_build_chg | default(False)) or
slurm_baseimg_build.changed}}"
- include_tasks: dockerimage.yml