aboutsummaryrefslogtreecommitdiffstats
path: root/LICENSE
AgeCommit message (Expand)AuthorFilesLines
2014-01-20Add license fileDirk Mueller1-0/+202
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
heat_template_version: pike

description: >
  OpenStack Panko service configured with docker.
  Note, this service is deprecated in Pike release and
  will be disabled in future releases.

parameters:
  DockerPankoApiImage:
    description: image
    type: string
  DockerPankoConfigImage:
    description: The container image to use for the panko config_volume
    type: string
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    default: {}
    description: Parameters specific to the role
    type: json
  EnableInternalTLS:
    type: boolean
    default: false

conditions:

  internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]}

resources:

  ContainersCommon:
    type: ./containers-common.yaml

  MySQLClient:
    type: ../../puppet/services/database/mysql-client.yaml

  PankoApiPuppetBase:
    type: ../../puppet/services/panko-api.yaml
    properties:
      EndpointMap: {get_param: EndpointMap}
      ServiceData: {get_param: ServiceData}
      ServiceNetMap: {get_param: ServiceNetMap}
      DefaultPasswords: {get_param: DefaultPasswords}
      RoleName: {get_param: RoleName}
      RoleParameters: {get_param: RoleParameters}

outputs:
  role_data:
    description: Role data for the Panko API role.
    value:
      service_name: {get_attr: [PankoApiPuppetBase, role_data, service_name]}
      config_settings:
        map_merge:
          - get_attr: [PankoApiPuppetBase, role_data, config_settings]
          - apache::default_vhost: false
      step_config: &step_config
        list_join:
          - "\n"
          - - {get_attr: [PankoApiPuppetBase, role_data, step_config]}
            - {get_attr: [MySQLClient, role_data, step_config]}
      service_config_settings: {get_attr: [PankoApiPuppetBase, role_data, service_config_settings]}
      # BEGIN DOCKER SETTINGS #
      puppet_config:
        config_volume: panko
        puppet_tags: panko_api_paste_ini,panko_config
        step_config: *step_config
        config_image: {get_param: DockerPankoConfigImage}
      kolla_config:
        /var/lib/kolla/config_files/panko_api.json:
          command: /usr/sbin/httpd -DFOREGROUND
          config_files:
            - source: "/var/lib/kolla/config_files/src/*"
              dest: "/"
              merge: true
              preserve_properties: true
          permissions:
            - path: /var/log/panko
              owner: panko:panko
              recurse: true
      docker_config:
        step_2:
          panko_init_log:
            image: &panko_api_image {get_param: DockerPankoApiImage}
            user: root
            volumes:
              - /var/log/containers/panko:/var/log/panko
              - /var/log/containers/httpd/panko-api:/var/log/httpd
            command: ['/bin/bash', '-c', 'chown -R panko:panko /var/log/panko']
        step_3:
          panko_db_sync:
            image: *panko_api_image
            net: host
            detach: false
            privileged: false
            user: root
            volumes:
              list_concat:
                - {get_attr: [ContainersCommon, volumes]}
                -
                  - /var/lib/config-data/panko/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
                  - /var/lib/config-data/panko/etc/panko:/etc/panko:ro
                  - /var/log/containers/panko:/var/log/panko
                  - /var/log/containers/httpd/panko-api:/var/log/httpd
            command: "/usr/bin/bootstrap_host_exec panko_api su panko -s /bin/bash -c '/usr/bin/panko-dbsync'"
        step_4:
          panko_api:
            start_order: 2
            image: *panko_api_image
            net: host
            privileged: false
            restart: always
            volumes:
              list_concat:
                - {get_attr: [ContainersCommon, volumes]}
                -
                  - /var/lib/kolla/config_files/panko_api.json:/var/lib/kolla/config_files/config.json:ro
                  - /var/lib/config-data/puppet-generated/panko/:/var/lib/kolla/config_files/src:ro
                  - /var/log/containers/panko:/var/log/panko
                  - /var/log/containers/httpd/panko-api:/var/log/httpd
                  -
                    if:
                      - internal_tls_enabled
                      - /etc/pki/tls/certs/httpd:/etc/pki/tls/certs/httpd:ro
                      - ''
                  -
                    if:
                      - internal_tls_enabled
                      - /etc/pki/tls/private/httpd:/etc/pki/tls/private/httpd:ro
                      - ''
            environment:
              - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
      host_prep_tasks:
        - name: create persistent logs directory
          file:
            path: "{{ item }}"
            state: directory
          with_items:
            - /var/log/containers/panko
            - /var/log/containers/httpd/panko-api
      metadata_settings:
        get_attr: [PankoApiPuppetBase, role_data, metadata_settings]