Commit Graph

118 Commits

Author SHA1 Message Date
Andreas Jaeger 24120d7b66 Retire repository
Fuel (from openstack namespace) and fuel-ccp (in x namespace)
repositories are unused and ready to retire.

This change removes all content from the repository and adds the usual
README file to point out that the repository is retired following the
process from
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project

See also
http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011647.html

Depends-On: https://review.opendev.org/699362
Change-Id: Ibd0360edc1781ea748a1ef28877c215bb4c726c7
2019-12-18 09:38:32 +01:00
Andrey Pavlov de44c2957f Change rolling update strategy for deployments with aa
Change-Id: I8ca60bbda77712d78c6b675c348c19bf075bead8
2017-03-22 12:54:27 +04:00
Andrey Pavlov f83c2f1aa7 Fix upgrades
Change-Id: I18822a3bbc1a99605affbb667c17c3af53622ee7
2017-03-14 23:09:34 +04:00
Andrey Pavlov 50459c99aa Adding headless service
Change-Id: Ie4ccbe0633d66468b722af872376e19141514580
2017-03-10 15:20:53 +04:00
Jenkins 92b827ba0b Merge "Initial AppController integration" 2017-03-06 15:16:10 +00:00
Andrey Pavlov ddf451199c Initial AppController integration
Change-Id: Ic3dc48a93f2cc1a4d3ff3e513b5cfcc545289c6b
2017-03-06 16:28:43 +04:00
Jenkins 67828266a7 Merge "Updates should be triggered on service/node configs change" 2017-03-06 11:07:41 +00:00
Jenkins a6858883d7 Merge "Store sensitive configs in secret" 2017-03-06 11:06:04 +00:00
Andrey Pavlov 08aa942502 Updates should be triggered on service/node configs change
Change-Id: Ia80685d032bffec55113639fb277b9910e10c909
2017-03-06 07:05:21 +00:00
Andrey Pavlov e8ce334a9d Store sensitive configs in secret
* secret_configs config group added
* global secret creation added

Change-Id: Ie6a9833cdf73b076e24204d47e5898dfb24de43e
2017-03-06 07:00:03 +00:00
Andrey Pavlov 5da9d81a2d Fixing upgrades
* fixing upgrade jobs naming
* adding configmap with per-service configuration

Change-Id: I708540d39666465cf1ecd446e85198a9080468c5
2017-03-05 18:41:59 +00:00
Andrey Pavlov ccaadd5e0b Configs overrides for custom services
"configs" section added to "services" group.

services:
  some_service:
    service_def: ads
    configs:
      asd: dsa

If you are mapping some service to some another service,
configs will be inherited as well.

Change-Id: Id64c0bf816a639c0b3dee96e5a72fcf964f9f731
2017-03-02 15:41:10 +00:00
Andrey Pavlov 9942c0e978 Adding service-per-service support
New config section introduced:

services:
  keystone-db:
    service_def: mariadb
  keystone:
    service_def: keystone
    mapping:
      database: keystone-db

Defined services can be used in topology definition.
In this example keystone-db service will be created from mariadb
definition and keystone will use it instead of mariadb.

Change-Id: I274826648390b844d240b7ae545c40264f662452
2017-03-02 15:41:03 +00:00
Andrey Pavlov 998dae2d40 Changing dependencies processing
To support multiple instances of the same service we should
be able to manage their dependencies separately

Change-Id: I3d1951537e49f56ae01b69c0eeef853dcde3b8b9
2017-03-02 15:40:50 +00:00
Sergey Kraynev f42e4d6b42 Add certificate to openrc fiel for SSL deployment
Change-Id: Id03c55c46698ee0a5117c6db89156e398ce7aecc
2017-03-02 11:55:02 +00:00
Andrey Pavlov 8a58edba07 Adding secret creation for registry auth
Change-Id: Ia1cfc0cf47f27375791736d565542d977cd5924e
2017-02-28 19:44:10 +04:00
Jenkins 15e984e6dd Merge "Secret support" 2017-02-14 10:16:37 +00:00
Peter Razumovsky 35b7e1f5a7 Add validation for nodes configs section
Add check for nodes configs section - it should be a dict.

Change-Id: Ie0114881aca4f62cfd50ff5358808765aa2924f8
2017-02-10 11:17:49 +00:00
Mikhail 795d58df42 Fix AttrDict parameter
Change-Id: Ief6f807ecc5235fa887cdd7d5c029ee354d7c932
2017-02-09 18:38:46 +04:00
Jenkins 3b1cd60dc1 Merge "Extension AttrDict" 2017-02-09 11:31:14 +00:00
Mikhail 2788592cb8 Extension AttrDict
Add implementation for some function in AttrDict
in order to avoid recourse to AttrDict._dict

In tests we use dict, but in fact should use _yaml.AttrDict

Change-Id: Ie99f3b05bd65f195f2f81191bff67cbacef1b816
2017-02-09 11:57:45 +04:00
Sergey Reshetnyak 397ddfb9ef Add nodes config support for actions
Change-Id: Id352a034d1a8b1f4c5c9a86ecd7a2e98316547c5
2017-02-06 17:05:05 +03:00
Dmitry Klenov 80447e7411 Secret support
Support of k8s secrets is introduced. To create a secret, put
an additional section 'secrets' to the definition
of the service:

secrets:
  name-for-reference:
    type: "Opaque"
    data:
      "file1": "some content"
      "file2": "another one"
    secret:
        secretName: name-in-k8s
    path: /where/to/mount

You can reference to this secret from the container definition:

daemon:
  secrets:
    - name-for-reference

The referenced secret must be defined in the 'secrets' section.

Change-Id: Iaaede4ccb94c99d70f3ecad040d5ab6c41428c5e
Partial-Bug: #1651392
Partial-Bug: #1651394
2017-02-02 09:43:22 +00:00
Jenkins ca44b54cb7 Merge "Add configs map for nodes" 2017-01-31 14:33:23 +00:00
Andrey Pavlov b8602e8412 Serialize workflows right before configmap creation
Change-Id: Ib2daeb9b4e17573e94d8fa2661eea84e7bf49093
2017-01-29 19:01:44 +00:00
Andrey Pavlov e7d4a26193 Execute Jobs only on nodes affected by deployment
* nodes on which Pods controlled by Jobs will be scheduled
  will be determined according to topology definition
* changes in order of nodes/roles in topology will not trigger
  update anymore

Change-Id: Ia41b50ff2b214791bec17577eb6e59fc94d0f2c2
2017-01-26 19:10:41 +00:00
Peter Razumovsky 341d3582e0 Add configs map for nodes
Now node definition can contain configs map,
which will add new configs especially for this node
or override current globals for the node.

Change-Id: I4de6a0fad94d5f83ca486c952d80d1c87c880c0e
Related-bug: #1653077
2017-01-23 13:11:01 +00:00
Kirill Bespalov 3a31bca0ab Fix components diff checking
Change-Id: Ibb65ccaff177d1fb1519b9d176c437cc8554f7f9
2017-01-20 20:33:47 +03:00
Kirill Bespalov 020786cb53 Improve validation for topology
Change-Id: If99a06ec0e38e1880fea2f1e9cbb2604fbf90185
2017-01-20 18:57:19 +03:00
Yuriy Taraday cd4b6bfe5f Add exports_ctx to upgrade jobs as well
https://review.openstack.org/418946 has broken upgrade job generation,
so fix it.

Change-Id: I7aca099ca264d13ff4ce8dc1bf439016e08a9eb7
2017-01-16 06:54:09 -08:00
Jenkins 02050bee2a Merge "Bring back StatefulSet support" 2017-01-13 11:56:23 +00:00
Jenkins 9232af00d5 Merge "[deploy] Fix macros files naming issue" 2017-01-13 10:05:39 +00:00
kbespalov dcb5ca2187 [deploy] Fix macros files naming issue
Since k8s 1.5 the keys of configmaps does not allow
the underscore and some others symbols.

So, we cant use the file names as keys like:
    file_name.j2 : <file content>

Easy way to fix it is just remove non-(alph/dig)
symbols from file names:
    filenamej2 : <file content>

and in a volume definition explicitly set
the filenames using the "path" field:

 configMap:
   name: exports
   items:
   - key: filenamej2
     path: file_name.j2 <--------

Change-Id: I784f8190147d5a03c0127a2e79805ce78714defe
2017-01-12 11:41:31 +00:00
Sergey Reshetnyak 3179511633 Add ccp action support
This patch adds support of actions on existing ccp deployment.
For example actions can run tempest, rotation fernet tokens and so on.
Documentation will be added in another patchset.

Change-Id: If45f1bfb823f2182b0e79ca269c6b0e95066d053
2017-01-12 13:40:41 +03:00
Yuriy Taraday 968a65fbf2 Bring back StatefulSet support
It's based on previous wotk on PetSets, but is adapted for
Kubernetes 1.5.

Change-Id: Ia1a18503514c2bfd6d90e6e265df33ede61e74d2
2017-01-10 14:00:31 -08:00
Jenkins 821952595d Merge "Allow 50% unavailable nodes if upgrading DaemonSet kind" 2016-12-28 09:09:40 +00:00
Jenkins 5356ee1c65 Merge "Fixing gethostbyname filter during files render" 2016-12-21 16:39:26 +00:00
Krzysztof Szukiełojć cca092e303 Adding Support for Annotations in DSL
Full Annotations support for pod and service is needed for setting
extra options in kubernates for users.

Change-Id: Icbde776e5e8b44cfabe752fb43cab2ed9978ffe5
2016-12-21 12:50:06 +01:00
Anonymous 25045442d5 Fixing gethostbyname filter during files render
* adding stub for it on ccp side
* passing address func to render context

Change-Id: Ie32b3622d562106acfccb930c3e96a689c08a7fb
2016-12-14 13:47:04 +00:00
Jenkins 074fbf089e Merge "Introduce cross-repository config templating" 2016-12-14 13:23:09 +00:00
Kirill Bespalov 29133f2787 Introduce cross-repository config templating
Make possible sharing and using of common parts of configs
like keystone, db, messaging, etc as jinja templates (e.g.
via macros) located at 'exports' directories of related
repositories.

Example of usage:
-------------------------------------------------
share rabbitmq configuration as macros:
-------------------------------------------------
  # file fuel-ccp-rabbitmq/exports/messaging.j2
  {% macro oslo_config() -%}
    [DEFAULT]
    transport_url=rabbit://{{ rabbitmq.user }}
    [oslo_messaging_rabbit]
    rabbit_ha_queues = true
  {%- endmacro %}
-------------------------------------------------
use it in nova.conf.j2:
-------------------------------------------------
  # file fuel-ccp-nova/service/files/nova.conf.j2
  [upgrade_levels]
  compute = auto

  {{ messaging.oslo_config() }} <-----------

  [wsgi]
  api_paste_config = /etc/nova/api-paste.ini
 -------------------------------------------------

During 'ccp deploy' the following occurs:

- loading templates files from /exports/ dirs of avaliable repositories.
- push files to k8s as ConfigMap with name 'exports'.
- adding a container volume '/etc/ccp/macros' with the ConfigMap content
- implicitly adding jinja imports of these templates files to all config
  files from /fuel-ccp-xxx/service/* to make possible macros usage.

Change-Id: I4858d62a9713e90c09300f75e01e06a31d3ac0ae
Depends-On: I429656b7eaf6312ee2d27ccaf0cb8802a234e871
2016-12-13 17:02:23 +00:00
Andrey Pavlov a44fbb0fea Remove hardcoded entrypoint repo name
* entrypoint_repo_name config option added

Change-Id: Icf1384755978fe202ff827657bc85bcbe8d76630
2016-12-13 19:32:26 +03:00
Sergey Lukjanov bc4d640ee5 Allow 50% unavailable nodes if upgrading DaemonSet kind
If we have something deployed using DaemonSet kind then it's 99%
high coupled to the host or some host capabilities while not providing
any HA or reliability features and it means that there is no reason
to make upgrade of such services one by one.

Good examples are nova-compute, nova-libvirt. There is no real diff
to update all of them at once or one by one (by default). In future
we'll need to implement much more flexible approach for upgrading
such service, as potentially we'll prefer to upgrade 10% of computes,
wait for some period of time to ensure that they are working correct
and only after that upgrade the rest of the compute nodes.

Change-Id: I477f3db48f459fad2753816a82575aa4174c96a6
2016-12-03 22:38:14 +03:00
Yuriy Taraday c23aacebd0 Fix upgrades wrt custom config files
Upgrades were broken by commit that added custom config files support,
fix that.

Change-Id: I199a4cdfe69878276e81f29d0c2ca1b7b16c0b09
2016-12-03 22:38:14 +03:00
Andrey Pavlov facf0f6282 Adding ability to specify custom config files
Example:

    files:
      keystone-conf: /tmp/keystone

In that case source file will be taken not from
`content` path, but from path defined in files config.

Change-Id: If2e71887adca9148f98b555ef8d6033211fe6375
2016-11-23 12:01:34 +00:00
Yuriy Taraday 0180721e78 Allow to specify affinity for jobs
This is needed for backup jobs to be run on specific nodes that have
backup volumes mounted.
Jobs can provide a 'topology_key' value that will be looked up in
topology to find which nodes this job can run on. So for backup one
would need to do smth like this:

nodes:
  node1:
    - backup
roles:
  backup:
    - backup

And add "topology_key: backup" to backup jobs.

Change-Id: I3b51b7a957735873b0de098578e1b83c586f111a
2016-11-18 19:52:07 +03:00
Kirill Bespalov 592b873327 Wrap topology-defined components to set()
To fix an exception during validation:
   TypeError: unsupported operand type(s) for -: 'set' and 'list'

Change-Id: Id22c59ca71bdb9043a310ce35ae294cf42dc10eb
2016-11-18 12:38:59 +03:00
Jenkins bee8fecc69 Merge "Allow jobs to specify own volumes" 2016-11-17 16:26:11 +00:00
Yuriy Taraday 3316f0f958 Allow jobs to specify own volumes
This will be needed for backup jobs which are the only jobs that need
backup volume mounted.

Change-Id: I3ea3cb4342f66da4ead91e945baaddd799522bcf
2016-11-17 15:43:56 +03:00
Kirill Bespalov 46d8e0788f Use topology as default deploy components list
Seems better if we use by default list of topology-defined services
directly, instead of trying to deploy and validate every time all
components from 'component_map'.

Change-Id: I7ff16d523cae2cb8d6cc294b17806709fa188f90
2016-11-15 14:41:08 +03:00