Commit Graph

62 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 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 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
Andrey Pavlov be5afcc512 Exports cm and j2 imports should be ordered
Otherwise it brakes updates (rolling updates are being
triggered without a reason)

Change-Id: I9fc0499e8a52b39f8ec5acceca5483524104782e
2017-02-26 16:47:06 +00:00
Sergey Kraynev 9b28e70091 Adopt address for complex name services
Change-Id: I1252df5c9c7a2cef7fbe3559dbfd4476ced7cabf
2017-02-15 20:34:26 +00:00
Sergey Kraynev 4e21fddd47 Add support for TLS
- Update address function to use "tls" config option and set scheme to 'https'.
  Also we check, that service is in list of services, which support TLS.
- Add nginx repo to defaults, because it will be used as a proxy
  service.
- Add Runtime error with suggestion to use extra options on cleanup,
  when 'tls' is enabled.

Current patch requires patch in fuel-ccp-nginx repository.

Change-Id: I65002b7ff9cfa2faf9d5bce470334aae95334d00
Depends-On: I0660cc3ca2723bc06871b61f859adfed42c0d807
2017-02-15 18:53:38 +00:00
Sergey Reshetnyak 397ddfb9ef Add nodes config support for actions
Change-Id: Id352a034d1a8b1f4c5c9a86ecd7a2e98316547c5
2017-02-06 17:05:05 +03:00
Andrey Pavlov 9efa68be50 Remove namespace from ingress domain
Change-Id: Ic1ed1352e4bdaeceff48763be04cf92f68934ed8
2017-01-26 01:32:51 +03: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 ba92265795 Merge "Add jinja exceptions support" 2016-12-27 13:20:14 +00:00
Jenkins f7306c8d3b Merge "Add function for getting repo paths" 2016-12-27 07:28:57 +00:00
Kirill Bespalov 11cdd1d5d6 Add jinja exceptions support
An exception support allows to use some kind of template-level
validation. Its may be helpful for openstack services configs
files templates.

Usage:
  {% raise_exception("exception message") %}

Change-Id: I0494b7db9f6dfdd1c49edb65667aef7e62890ddc
2016-12-26 13:35:16 +03:00
Sergey Reshetnyak a0dcccd9de Add function for getting repo paths
Change-Id: I204eb02aa4ed686238da04e0af522c9217bafdcf
2016-12-14 17:44:26 +03: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
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
Oleg Bondarev f4afa36d90 Add gethostbyname filter to get ip address from host name
This is needed for ODL integration, where we need to set
a manager for OVS in OVS containers in the form of
tcp:<odl_ip_address>:<tcp_port>

Change-Id: I0a2919458770929b922148ce70100b0d71a16d14
2016-12-01 11:41:04 +03:00
Andrey Pavlov 3f797388bf Adding cluster_domain config option
This option will be used in `address` function and will be
added to internal urls, so that default address will be
changed: service.ccp -> service.ccp.cluster.local

Change-Id: Iaa7e1172120506e284a0ae7b3c4539af411c8535
2016-11-22 21:36:00 +00:00
Yuriy Taraday 0df3f93937 Allow component to specify steps for upgrade
Steps must be in service/upgrade/default.yaml

Change-Id: Id07d2623cf85de7d7f2d81b2c9b72d0e3d909c2b
2016-11-12 18:12:49 +03:00
Jenkins 03ffb3deb0 Merge "Adding 'ccp domains list' command" 2016-11-11 21:33:13 +00:00
Jenkins 632f6bbf2e Merge "Add jinja filter to get host from variable" 2016-11-11 21:12:36 +00:00
Andrey Pavlov d720fb6fad Few changes to 'address' function for ingress
* scheme can be added with with_scheme=True flag
* ingress port will be added to the end of the address

Change-Id: I94efeea5a8a0acb67781d3e5a50b0c99601f7b4e
2016-11-11 19:57:22 +00:00
Andrey Pavlov d1c8589529 Adding 'ccp domains list' command
This command will print list of Ingress domains
that need to be resolved in order to make Ingress work

Change-Id: Ie7599d2833fb34facdc66f008fe615a03abd2f33
2016-11-11 22:53:56 +03:00
Jenkins 3b3e409f2b Merge "Drop PetSet support" 2016-11-11 13:09:08 +00:00
Jenkins a685ad8d21 Merge "Drop DaemonSet support" 2016-11-11 13:08:52 +00:00
Andrey Pavlov 06a012c593 Drop PetSet support
Change-Id: I2547c925671ce411acf68a1e8a2020064aaf8608
2016-11-10 16:11:51 +03:00
Kirill Bespalov c0a770e0e5 Fix j2 undefined handling
The patch fix handling attributes usage of a undefined variable like:

  {{ messaging.osconfig() }}
  {{ messaging.servers[5] }}

Without the patch the cases above will be failed with exception like this:
    AttributeError: 'str' object has no attribute '__call__'
because at any action on undefined variable the _fail_with_undefined_error
of SilentUndefined class returns empty string.

Change-Id: Ifa75ccef9bad7aeca13aeccb2470b38b03c1c139
2016-11-10 16:00:56 +03:00
Andrey Pavlov 95d2484ed4 Drop DaemonSet support
DaemonSet objects will be replaced with Deployment objects,
but one-pod-per-node rule will be provided with pod
antiaffinity and replicas will be set to number of matched
nodes.

Change-Id: Ieb8ac38e8d4426dd66668dbee303592137ce7fa0
2016-11-10 15:48:16 +03:00
Artur Zarzycki 455d7c5cda Add jinja filter to get host from variable
Change-Id: Ideb6323f7192814f6d0ff74a33d34329f603ecb2
2016-11-10 10:15:19 +01:00
Andrey Pavlov 6145a0078d Add minimal PetSets support
We need to run multiple memcached instances for scale and performance
and the best approach for doing it is to support PetSets.

Change-Id: I42c9f82508ed7f42df01b467f45531b67b52b054
2016-10-30 19:10:11 +03:00
Andrey Pavlov 81ef1646a7 Adding Ingress support
* ingress support added

port:
  cont: 123
  ingress: test

* two config params added:

configs:
  ingress:
    enable: False
    domain: external

Ingress will be disabled by default

Change-Id: Ic621af6930f078eea17fd83fce26b42cd32ecf01
2016-10-27 17:09:56 +03:00
Andrey Pavlov 2269d869cd Removing k8s_name function as it's not needed
Change-Id: I0e03c471315444e8b53202189047fbbfd2fd4c6f
2016-10-23 21:14:50 +03:00
Yuriy Taraday 855fda0ef3 Change repositories list in config
Allow use to add arbitrary repository to the list.

Change-Id: I7895a9a66d4499aabcd5eb9bd037e5b2bc1fa83c
2016-10-11 17:16:33 +03:00
Sergey Reshetnyak 91e79c610f Add ccp-component label for pods and jobs
It's needed for filtering objects by repo

Change-Id: Iababbf3c11f009055eebfed5479738b5ce432bb9
2016-10-06 14:24:24 +03:00
Yuriy Taraday 7d818d2827 Add deep merging when loading component configs
Change-Id: I05428668fefcb62462eccef945e2acc8efa784ff
2016-10-05 18:06:36 +03:00
Jenkins f2e6caed68 Merge "Remove adhoc calls to get_global_parameters" 2016-10-05 09:00:28 +00:00
Dmitriy Ukhlov b1fd7b49ed Removes --deploy-config cli option
Closes-bug: #1618864

Change-Id: I44dd700ac7d7621328a537f484d0bcaa2746b05e
2016-09-29 15:28:55 +03:00
Yuriy Taraday f34b2a909b Remove adhoc calls to get_global_parameters
Replace them with storing data from components centrally in global CONF
and using it all over the place.

This allows to centrally control how configs are handled, i.e. if we
decide to not use defaults anymore, we can just remove
load_component_defaults from cli module.

Change-Id: Id58bb43a7a9cbb367719ba59484bf3121ec68379
2016-09-27 19:33:55 +03:00
Jenkins 5e29c30a57 Merge "Remove "bool" filter from jinja env" 2016-09-27 14:27:22 +00:00
Andrey f75bfde71c Add "address" function to jinja env
* "address" function was added to jinja env.
  This function takes service name as a parameter and
  returns address of the service (<service_name>.<namespace>
  currently)
* k8s namespace added to "globals" configmap

Change-Id: I163857fa0c671e21725d7276540f5fbba09619d2
2016-09-26 23:08:15 +03:00
Andrey Pavlov 6b029c81c6 Remove "bool" filter from jinja env
"bool" filter doesn't work when boolean value is provided
and we don't really want to convert strings to bool. We should
explicitly define bool values and validate them with schema

Change-Id: Iff71cfc3c900f1a91368b0318933133997948a62
2016-09-23 18:24:57 +03:00
Andrey Pavlov ae770e795f Improvement of k8s Deployments update
* Deployment will be updated only if service-related configuration
  was changed
* SilentUndefined handler to ignore undefined variables of jinja
  templates was added

Change-Id: Iad384ee447268cba44cbfacba81118ec44ca31c3
2016-09-16 13:08:55 +03:00
Andrey a069ddb9ac Migrationg to pykube from python-k8sclient
Config changes:
* new `insecure` flag in `kubernetes` group
* `ca-certs` -> `ca-cert`

Change-Id: I4dd91828e7276dc781baea4c6df2c01b2f1312e0
2016-09-16 09:53:16 +00:00
Yuriy Taraday ba606cb2c4 Replace oslo_log usage for getLogger only
It was useless and we're getting rid of oslo.log, so first remove it
from all over the place

Change-Id: Ia6bf6e763fee41d060f6b68ddabf68424a51f780
2016-09-14 23:32:13 +03:00