"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
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
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
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
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
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
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 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
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: I8a367364b04e4c79baa163894c6f4ad166431cd8
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
Otherwise some services (neutron-server) receive file lists in different
order and roll even if nothing changes.
Change-Id: I5299f10996d630d4b12d43ee29e7e5cd879fddd1
When emulating DaemonSets, we have antiaffinity rule that prevents 2
pods from running on the same host and we have no spare nodes to start
new pods, so we should do -1+1 update there.
Change-Id: I733d426d80e09aec015a05cc3324fcf7a2c8699c
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
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
* 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
This commit adds http probe, changing our templates. Probe can be
specified as follows (for example):
---
liveness:
path: "/_status/"
type: "httpGet"
port: 8080
initialDelay: 10
timeout: 1
---
Old exec checks should be now defined as follows:
---
liveness:
command: "true"
type: "exec"
---
Timeouts are optional, and default values are
timeoutSeconds: 1
initialDelaySeconds: 10
Change-Id: I920029d4cb14981427e7f978778506fb0b69c435
Replacin "host-net" flag of service definitions with "hostNetwork"
flag to align with k8s field definition.
Change-Id: Iac7674fb2bfa214f9d027479d8934411c9bb535c
Depends-On: I2ce416d0d44aea43a1b32ae88484bb51c7608e25
Depends-On: I72c8ecef3d009d72d5a8f7f8b847199e3ac184dd
Right now if we define host-net: false in service yaml
it will be set to true, which is doesnt make any sense.
Change-Id: I5646e0f59413677d43d083029225a837994dde51