summaryrefslogtreecommitdiffstats
path: root/docker/docker-steps.j2
AgeCommit message (Collapse)AuthorFilesLines
2017-07-21Move step_config/docker_config calculation into services.yamlSteven Hardy1-29/+2
Moving these means we get a more accurate output from the overcloud RoleData output, which more closely reflects what is actually deployed. Change-Id: I154f36c1597cf4abe29ca0bfe15a54f507433fb1
2017-07-17Handles {controller,NovaCompute}ExtraConfig deprecation in ovecloud.j2Giulio Fidente1-28/+26
We missed to parse and merge {controller,NovaCompute}ExtraConfig data in change [1]. Also fixes whitespaces handling in docker-steps.j2 and puppet-steps.j2 previously updated by [2]. 1. Id37de5864138edd5476c097a8a1f0763faeaf768 2. I36a642fbc2076ad9e4a10ffc56d6d16f3ed6f27a Change-Id: Ia9983bc991eb79e479855993c1c8819ddfb52e38
2017-07-14Add role_merged_configs into workflow executions environmentxiGiulio Fidente1-0/+8
Merges per-role config settings into merged_config_settings which is wired into the workflow executions environment. Useful to consume role config settings from within a workflow. Change-Id: Id37de5864138edd5476c097a8a1f0763faeaf768
2017-06-28Default docker-puppet.py logging to INFODan Prince1-0/+6
If you want debug logging you can set the new DockerPuppetDebug heat parameter to 'True'. Change-Id: Iae7bb67379351ea15d61c331867d7005f07ba98e Closes-bug: 1700570
2017-06-26Provides a list of per-service ctlplane IPs to the workflows envGiulio Fidente1-0/+8
Adds in the execution environment of the workflow steps a list of per-service network IPs. This can be used by the workflows to execute actions against the nodes hosting a given service. Change-Id: Id7c735d53f04f6ad848b2f9f1adaa3c84ecd2fcd Implements: blueprint tripleo-ceph-ansible
2017-06-26Allows use of Mistral workflows during deployment stepsGiulio Fidente1-6/+72
Introduces a general mechanism meant to allow for the execution of workflows during the deployment steps. Services can define workflow actions to be triggered during a step in the newly added service_workflow_tasks section. The syntax is: service_workflow_tasks: step2: - name: my_action_name action: std.echo input: output: 'hello world' Implements: blueprint tripleo-ceph-ansible Depends-On: If02799e7457ca017cc119317dfb2db7198a3559f Depends-On: Ibc5707f9f06266fe84ad1dd91dcb984157871d30 Change-Id: I36a642fbc2076ad9e4a10ffc56d6d16f3ed6f27a
2017-06-12Merge "Moving *postconfig where it was *postpuppet"Jenkins1-11/+16
2017-06-12Moving *postconfig where it was *postpuppetCarlos Camacho1-11/+16
We need to ensure that the pacemaker cluster restarts in the end of the deployment. Due to the resources renaming we added the postconfig resource not in the end of the deployment as it was *postpuppet. Closes-bug: 1695904 Change-Id: Ic6978fcff591635223b354831cd6cbe0802316cf
2017-06-11Remove pip install paunchMichele Baldessari1-4/+0
We now have python-paunch-1.1.1 [1] in the overcloud images so we do not need to pip install it any longer. [1] https://trunk.rdoproject.org/centos7-master-head/current/python-paunch-1.1.1-0.20170602043913.c8e22e5.el7.centos.noarch.rpm Change-Id: I1ede514a8aee7ac217fa75843e67fb6542e06f99
2017-06-06Convert puppet and docker steps to ansibleSteven Hardy1-99/+30
Replace the multiple SoftwareDeployment resources with a common playbook that runs on all roles, consuming the configuration data written via the HostPrepAnsible tasks. This hopefully simplifies things, and will enable re-running the deploy steps for minor updates (we'll need some way to detect a container should be replaced, but that will be done via a follow-up patch). Change-Id: I674a4d9d2c77d1f6fbdb0996f6c9321848e32662
2017-05-24Remove duplicate PreConfig definitionJiri Stransky1-7/+0
We had two exactly the same definitions of PreConfig in docker_steps.j2.yaml. We should remove one of them. I chose to remove the first definition, as the 2nd definition is amended by change I674a4d9d2c77d1f6fbdb0996f6c9321848e32662, so we'll avoid a conflict. Change-Id: If65e30daefcf6552e085c7648c6691b7068834d4
2017-05-24Fix race condition between docker-puppet and container stepsJiri Stransky1-0/+1
GenerateConfigDeployment wasn't anchored with dependencies anywhere. If it took too long to complete and step 1 of containers creation already started executing, problems happened. This is now fixed by adding the required dependency relationship. Change-Id: Ie7dfd2a965e704ba278d4c2fad67f14a3a62799e Closes-Bug: #1692503
2017-05-20Merge "Consolidate writing json configs with HostPrepTasks"Jenkins1-92/+56
2017-05-19Update the template_version alias for all the templates to pike.Carlos Camacho1-1/+1
Master is now the development branch for pike changing the release alias name. Change-Id: I938e4a983e361aefcaa0bd9a4226c296c5823127
2017-05-17Consolidate writing json configs with HostPrepTasksSteven Hardy1-92/+56
We already have an ansible deployment that applies the per-service host_prep_tasks, so we can simplify the dependencies here by just doing the docker-steps host preparation at the same time. The motivation behind this is to both simplify the depends_on web we have here, reduce the number of discrete deployments, and also to potentially make running ansible directly e.g for debugging easier. In a future patch we'll convert the configuration steps to work in a similar way, such that they can be more easily reapplied e.g for rolling minor updates, possibly outside of heat. Change-Id: I9a201fc5a9e82c7fba4c2de36eb5332e21a81d37
2017-04-25Fix dependencies for PreConfig/PostConfig resourcesSteven Hardy1-17/+6
We have a circular dependency errror since https://review.openstack.org/#/c/452734/ landed. This adjusts the dependencies to ensure we run pre-config before the first puppet deploy step, and removes the duplicate declaration of the ControllerPostConfig resource. Also we ensure the first container step always depends on the same step puppet deploy. Change-Id: I70c5a39fb36b951bdeb04c15bddac7d00eebf08a Closes-Bug: #1686098
2017-04-24Merge pre|post puppet resources into pre|post config.Carlos Camacho1-4/+4
The [Pre|Post]Puppet resources were renamed in https://review.openstack.org/#/c/365763. This was intended for having a pre/post deployment steps using an agnostic name instead of being attached to a technology. The renaming was unintentionally reverted in https://review.openstack.org/#/c/393644/ and https://review.openstack.org/#/c/434451. This submission merge both resources into one, and remove the old pre|post hooks. Closes-bug: #1669756 Change-Id: Ic9d97f172efd2db74255363679b60f1d2dc4e064
2017-04-21Merge "Use -net=host for docker-puppet.py config gen"Jenkins1-0/+4
2017-04-20Add defaults for docker puppet tasksSteven Hardy1-4/+10
Currently we're referencing some steps that don't exist in the output from the OS::Heat::Value resource, but as noted in the heat bug #1681749 I think this isn't valid and probably should not be allowed, so instead merge defaults with the non-empty step tasks. To avoid further duplication of the loop variables, I made the max step a variable. Change-Id: Icf3d639b53c97006a0c370c12600449fba6f3323 Related-Bug: #1681749
2017-04-12Add tags to rolesAlex Schultz1-3/+10
Prior to Ocata, the Controller role was hardcoded for various lookups. When we switched to having the primary role name being dynamically pulled from the roles_data.yaml using the first role as the primary role as part of I36df7fa86c2ff40026d59f02248af529a4a81861, it introduced a regression for folks who had previously been using a custom roles file without the Controller being listed first. Instead of relying on the position of the role in the roles data, this change adds the concepts of tags to the role data that can be used when looking for specific functionality within the deployment process. If no roles are specified with this the tags indicating a 'primary' 'controller', it will fall back to using the first role listed in the roles data as the primary role. Change-Id: Id3377e7d7dcc88ba9a61ca9ef1fb669949714f65 Closes-Bug: #1677374
2017-04-11Use -net=host for docker-puppet.py config genDan Prince1-0/+4
We pass the short hostname to docker-puppet.py. In order to satisfy the factor FQDN check for the short hostname we need to run the container with --net=host in some cases. Change-Id: I2929f122f23ee33e8ea5d4c5006d2bbb8b928b67 Closes-bug: #1681903
2017-03-13Tasks hook for preparing BM host for deploying containerized servicesJiri Stransky1-1/+27
This implements a host_prep_tasks hook where we can specify Ansible tasks to perform on the host before deploying containerized services. The hook runs in a single step, the assumption is that we will mostly use the hook for creating per-service directories on the host to ensure we are able to mount them into the containers. (We cannot do this operation via Puppet because all containerized services run their Puppet within a config container, so Puppet doesn't have access to host's filesystem.) Change-Id: I7d8bac39e0cd422fd651eefe29f7d10941ab4a1a
2017-03-10Remove docker_image sections (unused)Dan Prince1-6/+5
We don't use docker_image for anything. It is a remant of the pre-composable docker templates and we can now remove it. This patch removes references to the 'docker_image' section from docker/post.yaml and all of the docker/services* templates. Change-Id: I208c1ef1550ab39ab0ee47ab282f9b1937379810
2017-03-06Enable composable upgrades for docker service templatesSteven Hardy1-0/+325
This aligns the docker based services with the new composable upgrades architecture we landed for ocata, and does a first-pass adding upgrade_tasks for the services (these may change, atm we only disable the service on the host). To run the upgrade workflow you basically do two steps: openstack overcloud deploy --templates \ -e environments/major-upgrade-composable-steps-docker.yaml This will run the ansible upgrade steps we define via upgrade_tasks then run the normal docker PostDeploySteps to bring up the containers. For the puppet workflow there's then an operator driven step where compute nodes (and potentially storage nodes) are upgrades in batches and finally you do: openstack overcloud deploy --templates \ -e environments/major-upgrade-converge-docker.yaml In the puppet case this re-applies puppet to unpin the nova RPC API so I guess it'll restart the nova containers this affects but otherwise will be a no-op (we also disable the ansible steps at this point. Depends-On: I9057d47eea15c8ba92ca34717b6b5965d4425ab1 Change-Id: Ia50169819cb959025866348b11337728f8ed5c9e