summaryrefslogtreecommitdiffstats
path: root/playbooks/adhoc/s3_registry/s3_registry.yml
blob: 30b873db310c0ca7d35e6af148c68a25a9405c88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
# This playbook creates an S3 bucket named after your cluster and configures the docker-registry service to use the bucket as its backend storage.
# Usage:
#  ansible-playbook s3_registry.yml -e accesskey="S3 aws access key" -e secretkey="S3 aws secret key" -e clusterid="mycluster"
#
# The AWS access/secret keys should be the keys of a separate user (not your main user), containing only the necessary S3 access role.
# The 'clusterid' is the short name of your cluster.

- hosts: security_group_{{ clusterid }}_master
  remote_user: root
  gather_facts: False

  tasks:

  - name: Create S3 bucket
    local_action:
      module: s3 bucket="{{ clusterid }}-docker" mode=create aws_access_key={{ accesskey|quote }} aws_secret_key={{ secretkey|quote }}

  - name: Generate docker registry config
    template: src="s3_registry.j2" dest="/root/config.yml" owner=root mode=0600

  - name: Determine if new secrets are needed
    command: oc get secrets
    register: secrets

  - name: Create registry secrets
    command: oc secrets new dockerregistry /root/config.yml
    when: "'dockerregistry' not in secrets.stdout"

  - name: Determine if service account contains secrets
    command: oc describe serviceaccount/registry
    register: serviceaccount

  - name: Add secrets to registry service account
    command: oc secrets add serviceaccount/registry secrets/dockerregistry
    when: "'dockerregistry' not in serviceaccount.stdout"

  - name: Determine if deployment config contains secrets
    command: oc volume dc/docker-registry --list
    register: dc

  - name: Add secrets to registry deployment config
    command: oc volume dc/docker-registry --add --name=dockersecrets -m /etc/registryconfig --type=secret --secret-name=dockerregistry
    when: "'dockersecrets' not in dc.stdout"

  - name: Scale up registry
    command: oc scale --replicas=1 dc/docker-registry

  - name: Delete temporary config file
    file: path=/root/config.yml state=absent