"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
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
To support multiple instances of the same service we should
be able to manage their dependencies separately
Change-Id: I3d1951537e49f56ae01b69c0eeef853dcde3b8b9
This is useful for applications that calculate internal values based on
available memory. And it is especially useful in containers because
majority of applications can not determine available memory correctly
(they do not work with cgroups).
Change-Id: Iadd0529d166ef1dad1697215bbc181104a7b926e
This patch adds ability to merge nested dicts if they are passed as a
paramater for "_merge" method of AttrDict class.
Also corresponding tests are added.
Change-Id: I7d18f69d4dc076c178552ae886af6df2932abc27
- 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
Additionaly I have to updates all topology and docs to address
this change. And yes, I propose to deploy 3 rabbitmq too.
Change-Id: I9db9fcb7a5f78312dabc23ed2ff56cb0a9748f4d
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
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
* 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
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
This variable will be consumed by entrypoint script
to provide pod_name jinja variable
Also dls version was bumped to 0.4.0
Change-Id: I8fc2f026e2f79355c5b80429e3ab7ee854c30639
Full Annotations support for pod and service is needed for setting
extra options in kubernates for users.
Change-Id: Icbde776e5e8b44cfabe752fb43cab2ed9978ffe5
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
'Always' is not the best option as it adds round-trip to registry for
every node even if image has already been pulled. Keeping default to be
the same as in Kubernetes would make it conmfortable to use 'latest' tag
during development and proper versioned tag for production-like
environments.
Change-Id: Ifa628e00959bae062bb5bb7e95e071af8babee32
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
During the describing images and missing their parents the `ccp build`
command sometime is not so informative, e.g. like that:
ERROR ccp 'base-tools'
Unit tests are included.
Change-Id: I14f6a4cc75e49f17c3d943d508bea9c0b819da9f
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
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
* service version validation added. It will be executed before
deployment and as part of validate command for service
definitions.
* dsl_version field now is required field
* initial dsl_version = "0.1.0" added
* doc describing dsl versioning added
Depends-On: I0abe9781300c794d690b0822fc2a857db3ca8ea5
Depends-On: Ib755efe784a1c4bc04fb49827baa268513dd27e1
Depends-On: I62520035507ca7c5ac97a0e34062fa9eac26e2f6
Depends-On: I9afb7143dc876b839297c5bf5c03b156e0daa8c2
Depends-On: I5a05d2538a3315ce2e652219a6cd5aead9c7d617
Depends-On: I4a0c00b40b2af4f213daf7e43419dd46951fc4bc
Depends-On: Id988118f78fcdfe0599abe27959590f56f3617d3
Depends-On: I965814b147179435ef2cf94abc362df866495f8f
Depends-On: Ic9e4e79e848ab944e5910b57cc5cd524f1f97ae0
Depends-On: Ic8d9c334ac57a13066db38562423523bd23b671f
Depends-On: I581b587d36e03d60c5fb04e7dbf0c184c992b526
Depends-On: I4d4b9f363138b85198222ac2e770930ce7bd6ab5
Depends-On: I1728ee34eef02668cb54b1f54291a66d609dd6c4
Depends-On: I4d4b9f363138b85198222ac2e770930ce7bd6ab5
Change-Id: I220d99e76220c124d782c97de51112869c727148
Right now it's defaults to Always if :latest tag is
specified, or IfNotPresent otherwise. Which very confusing,
especialy if you switch from :latest to some tag and wonder
why your images are not updated.
Change-Id: I2cdc0817c2b4e8c95993b5eae44ffff26acd7662
For upgrade scenario we'll need to process them after initial sync jobs,
so we need to collect them and make a decision on the whole list.
We don't touch cofigmaps here because handling their changes detection
will require some more work.
Change-Id: Ic727ab08e502d9b9db9e9bf3044e64f992039ef8