Use uwsgi yaml file instead of environment vairable
to set the default params of uwsgi Change-Id: I25ce013f2f793af31fb38842ab2eb5e0d597ff5b
This commit is contained in:
parent
18e0dae6bd
commit
1c5ea0f579
@ -25,10 +25,9 @@ def create_or_resume(spec):
|
|||||||
"""Create or start-up Ceilometer."""
|
"""Create or start-up Ceilometer."""
|
||||||
|
|
||||||
config_hash = utils.generate_hash(spec)
|
config_hash = utils.generate_hash(spec)
|
||||||
env = utils.get_uwsgi_env()
|
|
||||||
|
|
||||||
utils.create_or_update('ceilometer/secret.yml.j2', spec=spec)
|
utils.create_or_update('ceilometer/secret.yml.j2', spec=spec)
|
||||||
utils.create_or_update('ceilometer/deployment-agent-notification.yml.j2',
|
utils.create_or_update('ceilometer/deployment-agent-notification.yml.j2',
|
||||||
spec=spec, env=env,
|
spec=spec,
|
||||||
config_hash=config_hash)
|
config_hash=config_hash)
|
||||||
utils.create_or_update('ceilometer/horizontalpodautoscaler.yml.j2')
|
utils.create_or_update('ceilometer/horizontalpodautoscaler.yml.j2')
|
||||||
|
@ -30,12 +30,11 @@ def create_or_resume(name, spec, **_):
|
|||||||
start the service up for the first time.
|
start the service up for the first time.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
env = utils.get_uwsgi_env()
|
|
||||||
config_hash = utils.generate_hash(spec)
|
config_hash = utils.generate_hash(spec)
|
||||||
for component in ("api", "api-cfn"):
|
for component in ("api", "api-cfn"):
|
||||||
utils.create_or_update('heat/deployment.yml.j2',
|
utils.create_or_update('heat/deployment.yml.j2',
|
||||||
name=name, spec=spec,
|
name=name, spec=spec,
|
||||||
component=component, env=env,
|
component=component,
|
||||||
config_hash=config_hash)
|
config_hash=config_hash)
|
||||||
utils.create_or_update('heat/service.yml.j2',
|
utils.create_or_update('heat/service.yml.j2',
|
||||||
name=name, component=component)
|
name=name, component=component)
|
||||||
|
@ -43,10 +43,10 @@ def create_or_resume(name, spec, **_):
|
|||||||
config = utils.create_or_update('horizon/configmap.yml.j2',
|
config = utils.create_or_update('horizon/configmap.yml.j2',
|
||||||
name=name, spec=spec)
|
name=name, spec=spec)
|
||||||
config_hash = utils.generate_hash(config.obj['data'])
|
config_hash = utils.generate_hash(config.obj['data'])
|
||||||
env = utils.get_uwsgi_env()
|
|
||||||
utils.create_or_update('horizon/deployment.yml.j2',
|
utils.create_or_update('horizon/deployment.yml.j2',
|
||||||
config_hash=config_hash, name=name,
|
config_hash=config_hash, name=name,
|
||||||
spec=spec, env=env)
|
spec=spec)
|
||||||
utils.create_or_update('horizon/service.yml.j2',
|
utils.create_or_update('horizon/service.yml.j2',
|
||||||
name=name, spec=spec)
|
name=name, spec=spec)
|
||||||
utils.create_or_update('horizon/memcached.yml.j2',
|
utils.create_or_update('horizon/memcached.yml.j2',
|
||||||
@ -67,10 +67,10 @@ def update(name, spec, **_):
|
|||||||
config = utils.create_or_update('horizon/configmap.yml.j2',
|
config = utils.create_or_update('horizon/configmap.yml.j2',
|
||||||
name=name, spec=spec)
|
name=name, spec=spec)
|
||||||
config_hash = utils.generate_hash(config.obj['data'])
|
config_hash = utils.generate_hash(config.obj['data'])
|
||||||
env = utils.get_uwsgi_env()
|
|
||||||
utils.create_or_update('horizon/deployment.yml.j2',
|
utils.create_or_update('horizon/deployment.yml.j2',
|
||||||
config_hash=config_hash, name=name,
|
config_hash=config_hash, name=name,
|
||||||
spec=spec, env=env)
|
spec=spec)
|
||||||
if "ingress" in spec:
|
if "ingress" in spec:
|
||||||
utils.create_or_update('horizon/ingress.yml.j2',
|
utils.create_or_update('horizon/ingress.yml.j2',
|
||||||
name=name, spec=spec)
|
name=name, spec=spec)
|
||||||
|
@ -92,7 +92,7 @@ def create_or_resume(name, spec, **_):
|
|||||||
This function is called when a new resource is created but also when we
|
This function is called when a new resource is created but also when we
|
||||||
start the service up for the first time.
|
start the service up for the first time.
|
||||||
"""
|
"""
|
||||||
env = utils.get_uwsgi_env()
|
|
||||||
config_hash = utils.generate_hash(spec)
|
config_hash = utils.generate_hash(spec)
|
||||||
conn = utils.get_openstack_connection()
|
conn = utils.get_openstack_connection()
|
||||||
auth_url = conn.config.auth["auth_url"]
|
auth_url = conn.config.auth["auth_url"]
|
||||||
@ -109,7 +109,7 @@ def create_or_resume(name, spec, **_):
|
|||||||
# (TODO)Replace the current admin url
|
# (TODO)Replace the current admin url
|
||||||
utils.create_or_update('keystone/deployment.yml.j2',
|
utils.create_or_update('keystone/deployment.yml.j2',
|
||||||
name=name, spec=spec,
|
name=name, spec=spec,
|
||||||
env=env, config_hash=config_hash)
|
config_hash=config_hash)
|
||||||
utils.create_or_update('keystone/service.yml.j2',
|
utils.create_or_update('keystone/service.yml.j2',
|
||||||
name=name, spec=spec)
|
name=name, spec=spec)
|
||||||
utils.create_or_update('keystone/horizontalpodautoscaler.yml.j2',
|
utils.create_or_update('keystone/horizontalpodautoscaler.yml.j2',
|
||||||
|
@ -31,13 +31,9 @@ def create_or_resume(name, spec, **_):
|
|||||||
|
|
||||||
config_hash = utils.generate_hash(spec)
|
config_hash = utils.generate_hash(spec)
|
||||||
for component in ("api", "conductor"):
|
for component in ("api", "conductor"):
|
||||||
if component == "api":
|
|
||||||
env = utils.get_uwsgi_env()
|
|
||||||
else:
|
|
||||||
env = {}
|
|
||||||
utils.create_or_update('magnum/deployment.yml.j2',
|
utils.create_or_update('magnum/deployment.yml.j2',
|
||||||
name=name, spec=spec,
|
name=name, spec=spec,
|
||||||
component=component, env=env,
|
component=component,
|
||||||
config_hash=config_hash)
|
config_hash=config_hash)
|
||||||
utils.create_or_update('magnum/horizontalpodautoscaler.yml.j2',
|
utils.create_or_update('magnum/horizontalpodautoscaler.yml.j2',
|
||||||
name=name, component=component)
|
name=name, component=component)
|
||||||
|
@ -51,6 +51,7 @@ def deploy(name, namespace, new, **_):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
utils.create_or_update('operator/namespace.yml.j2')
|
utils.create_or_update('operator/namespace.yml.j2')
|
||||||
|
utils.create_or_update('operator/uwsgidefaultconfig.yml.j2')
|
||||||
|
|
||||||
config = utils.to_dict(new['data']['operator-config.yaml'])
|
config = utils.to_dict(new['data']['operator-config.yaml'])
|
||||||
|
|
||||||
|
@ -39,6 +39,8 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: ceilometer-config
|
- name: ceilometer-config
|
||||||
mountPath: /etc/ceilometer
|
mountPath: /etc/ceilometer
|
||||||
|
- name: uwsgi-config
|
||||||
|
mountPath: /etc/uwsgi
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 1000m
|
cpu: 1000m
|
||||||
@ -54,10 +56,12 @@ spec:
|
|||||||
env:
|
env:
|
||||||
- name: "DATABASE_URI"
|
- name: "DATABASE_URI"
|
||||||
value: "{{ spec.dbUri }}"
|
value: "{{ spec.dbUri }}"
|
||||||
|
{% if env is defined %}
|
||||||
{% for v in env %}
|
{% for v in env %}
|
||||||
- name: "{{ v.name }}"
|
- name: "{{ v.name }}"
|
||||||
value: "{{ v.value }}"
|
value: "{{ v.value }}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
@ -71,6 +75,10 @@ spec:
|
|||||||
- name: ceilometer-config
|
- name: ceilometer-config
|
||||||
secret:
|
secret:
|
||||||
secretName: ceilometer-config
|
secretName: ceilometer-config
|
||||||
|
- name: uwsgi-config
|
||||||
|
configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: uwsgi-default
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsUser: 65534
|
runAsUser: 65534
|
||||||
runAsGroup: 65534
|
runAsGroup: 65534
|
||||||
|
@ -98,11 +98,17 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /etc/heat
|
- mountPath: /etc/heat
|
||||||
name: config
|
name: config
|
||||||
|
- name: uwsgi-config
|
||||||
|
mountPath: /etc/uwsgi
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
hostPath:
|
hostPath:
|
||||||
path: {{ spec['configDir'] }}
|
path: {{ spec['configDir'] }}
|
||||||
type: Directory
|
type: Directory
|
||||||
|
- name: uwsgi-config
|
||||||
|
configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: uwsgi-default
|
||||||
{% if 'nodeSelector' in spec %}
|
{% if 'nodeSelector' in spec %}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
||||||
|
@ -37,10 +37,12 @@ spec:
|
|||||||
image: vexxhost/horizon:latest
|
image: vexxhost/horizon:latest
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
env:
|
env:
|
||||||
|
{% if env is defined %}
|
||||||
{% for v in env %}
|
{% for v in env %}
|
||||||
- name: "{{ v.name }}"
|
- name: "{{ v.name }}"
|
||||||
value: "{{ v.value }}"
|
value: "{{ v.value }}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- name: SECRET_KEY
|
- name: SECRET_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@ -74,6 +76,8 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: /etc/horizon
|
mountPath: /etc/horizon
|
||||||
|
- name: uwsgi-config
|
||||||
|
mountPath: /etc/uwsgi
|
||||||
{% if 'logo' in spec %}
|
{% if 'logo' in spec %}
|
||||||
- name: logo
|
- name: logo
|
||||||
mountPath: /usr/local/lib/python3.7/site-packages/static/dashboard/img/logo.svg
|
mountPath: /usr/local/lib/python3.7/site-packages/static/dashboard/img/logo.svg
|
||||||
@ -90,6 +94,10 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
defaultMode: 420
|
defaultMode: 420
|
||||||
name: horizon
|
name: horizon
|
||||||
|
- name: uwsgi-config
|
||||||
|
configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: uwsgi-default
|
||||||
{% if 'logo' in spec %}
|
{% if 'logo' in spec %}
|
||||||
- name: logo
|
- name: logo
|
||||||
configMap:
|
configMap:
|
||||||
|
@ -99,11 +99,13 @@ spec:
|
|||||||
- name: keystone
|
- name: keystone
|
||||||
image: vexxhost/keystone:latest
|
image: vexxhost/keystone:latest
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
|
{% if env is defined %}
|
||||||
env:
|
env:
|
||||||
{% for v in env %}
|
{% for v in env %}
|
||||||
- name: "{{ v.name }}"
|
- name: "{{ v.name }}"
|
||||||
value: "{{ v.value }}"
|
value: "{{ v.value }}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
ports:
|
ports:
|
||||||
- name: keystone
|
- name: keystone
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
@ -139,6 +141,8 @@ spec:
|
|||||||
mountPath: /etc/keystone/fernet-keys
|
mountPath: /etc/keystone/fernet-keys
|
||||||
- name: credential-keys
|
- name: credential-keys
|
||||||
mountPath: /etc/keystone/credential-keys
|
mountPath: /etc/keystone/credential-keys
|
||||||
|
- name: uwsgi-config
|
||||||
|
mountPath: /etc/uwsgi
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
secret:
|
secret:
|
||||||
@ -149,6 +153,10 @@ spec:
|
|||||||
- name: credential-keys
|
- name: credential-keys
|
||||||
secret:
|
secret:
|
||||||
secretName: keystone-credential
|
secretName: keystone-credential
|
||||||
|
- name: uwsgi-config
|
||||||
|
configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: uwsgi-default
|
||||||
{% if 'nodeSelector' in spec %}
|
{% if 'nodeSelector' in spec %}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
||||||
|
@ -91,11 +91,17 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /etc/magnum
|
- mountPath: /etc/magnum
|
||||||
name: config
|
name: config
|
||||||
|
- name: uwsgi-config
|
||||||
|
mountPath: /etc/uwsgi
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
hostPath:
|
hostPath:
|
||||||
path: {{ spec['configDir'] }}
|
path: {{ spec['configDir'] }}
|
||||||
type: Directory
|
type: Directory
|
||||||
|
- name: uwsgi-config
|
||||||
|
configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: uwsgi-default
|
||||||
{% if 'nodeSelector' in spec %}
|
{% if 'nodeSelector' in spec %}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: uwsgi-default
|
||||||
|
namespace: openstack
|
||||||
|
data:
|
||||||
|
uwsgi.yaml: |
|
||||||
|
uwsgi:
|
||||||
|
enable-threads: True
|
||||||
|
processes: '%k'
|
||||||
|
exit-on-reload: True
|
||||||
|
die-on-term: True
|
||||||
|
lazy-apps: True
|
||||||
|
add-header: 'Connection: close'
|
||||||
|
buffer-size: 65535
|
||||||
|
thunder-lock: True
|
||||||
|
http-auto-chunked: True
|
||||||
|
http-raw-body: True
|
||||||
|
socket-timeout: 10
|
||||||
|
need-app: True
|
||||||
|
route-user-agent: '^kube-probe.* donotlog:'
|
||||||
|
log-x-forwarded-for: True
|
@ -36,23 +36,6 @@ from openstack_operator import objects
|
|||||||
|
|
||||||
DIR_PATH = os.path.dirname(os.path.realpath(__file__))
|
DIR_PATH = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
UWSGI_SETTINGS = {
|
|
||||||
'UWSGI_ENABLE_THREADS': True,
|
|
||||||
'UWSGI_PROCESSES': 2,
|
|
||||||
'UWSGI_EXIT_ON_RELOAD': True,
|
|
||||||
'UWSGI_DIE_ON_TERM': True,
|
|
||||||
'UWSGI_LAZY_APPS': True,
|
|
||||||
'UWSGI_ADD_HEADER': 'Connection: close',
|
|
||||||
'UWSGI_BUFFER_SIZE': 65535,
|
|
||||||
'UWSGI_THUNDER_LOCK': True,
|
|
||||||
'UWSGI_AUTO_CHUNCKED': True,
|
|
||||||
'UWSGI_HTTP_RAW_BODY': True,
|
|
||||||
'UWSGI_SOCKET_TIMEOUT': 10,
|
|
||||||
'UWSGI_NEED_APP': True,
|
|
||||||
'UWSGI_ROUTE_USER_AGENT': '^kube-probe.* donotlog:',
|
|
||||||
'UWSGI_LOG_X_FORWARDED_FOR': True,
|
|
||||||
}
|
|
||||||
|
|
||||||
VERSION = version.VersionInfo('openstack_operator').version_string()
|
VERSION = version.VersionInfo('openstack_operator').version_string()
|
||||||
|
|
||||||
|
|
||||||
@ -229,14 +212,6 @@ def generate_hash(dictionary):
|
|||||||
return hash(json.dumps(dictionary))
|
return hash(json.dumps(dictionary))
|
||||||
|
|
||||||
|
|
||||||
def get_uwsgi_env():
|
|
||||||
"""Generate k8s env list from UWSGI_SETTINGS dict"""
|
|
||||||
res = []
|
|
||||||
for key, value in UWSGI_SETTINGS.items():
|
|
||||||
res.append({'name': key, 'value': value})
|
|
||||||
return res
|
|
||||||
|
|
||||||
|
|
||||||
def get_configmap(namespace, name):
|
def get_configmap(namespace, name):
|
||||||
"""Retrieve a configmap from Kubernetes.
|
"""Retrieve a configmap from Kubernetes.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user