switch memcached from tcp to unix domain socket

This commit is contained in:
chris meyers 2020-04-01 16:09:57 -04:00
parent 37a715c680
commit 7433aab258
13 changed files with 25 additions and 51 deletions

View File

@ -405,17 +405,6 @@ AWX_ISOLATED_PERIODIC_CHECK = 600
# Verbosity level for isolated node management tasks
AWX_ISOLATED_VERBOSITY = 0
# Memcached django cache configuration
# CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
# 'LOCATION': '127.0.0.1:11211',
# 'TIMEOUT': 864000,
# 'KEY_PREFIX': 'tower_dev',
# }
# }
DEVSERVER_DEFAULT_ADDR = '0.0.0.0'
DEVSERVER_DEFAULT_PORT = '8013'
@ -458,7 +447,7 @@ CELERYBEAT_SCHEDULE = {
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'memcached:11211',
'LOCATION': 'unix:/var/run/memcached/memcached.sock'
},
}

View File

@ -27,7 +27,6 @@ kubernetes_redis_image: "redis"
kubernetes_redis_image_tag: "latest"
kubernetes_redis_config_mount_path: "/usr/local/etc/redis/redis.conf"
memcached_hostname: localhost
memcached_mem_request: 1
memcached_cpu_request: 500

View File

@ -192,16 +192,6 @@ data:
LOGGING['handlers']['system_tracking_migrations'] = {'class': 'logging.NullHandler'}
LOGGING['handlers']['management_playbooks'] = {'class': 'logging.NullHandler'}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'unix:/var/run/memcached/memcached.sock'
},
'ephemeral': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
USE_X_FORWARDED_PORT = True
AWX_CONTAINER_GROUP_DEFAULT_IMAGE = "{{ container_groups_image }}"

View File

@ -3,5 +3,3 @@ DATABASE_NAME={{ pg_database }}
DATABASE_HOST={{ pg_hostname|default('postgresql') }}
DATABASE_PORT={{ pg_port|default('5432') }}
DATABASE_PASSWORD={{ pg_password | quote }}
MEMCACHED_HOST={{ memcached_hostname|default('localhost') }}
MEMCACHED_PORT={{ memcached_port|default('11211') }}

View File

@ -8,7 +8,5 @@ postgresql_image: "postgres:{{postgresql_version}}"
memcached_image: "memcached"
memcached_version: "alpine"
memcached_hostname: "memcached"
memcached_port: "11211"
compose_start_containers: true

View File

@ -10,6 +10,12 @@
state: directory
mode: 0777
- name: Create Memcached socket directory
file:
path: "{{ docker_compose_dir }}/memcached_socket"
state: directory
mode: 0777
- name: Create Docker Compose Configuration
template:
src: "{{ item }}.j2"

View File

@ -10,14 +10,4 @@ DATABASES = {
}
}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '{}:{}'.format("{{ memcached_hostname }}", "{{ memcached_port }}")
},
'ephemeral': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
BROADCAST_WEBSOCKET_SECRET = "{{ broadcast_websocket_secret | b64encode }}"

View File

@ -25,6 +25,7 @@ services:
- "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py"
- "{{ docker_compose_dir }}/nginx.conf:/etc/nginx/nginx.conf:ro"
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
{% if project_data_dir is defined %}
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
{% endif %}
@ -78,6 +79,7 @@ services:
- "{{ docker_compose_dir }}/environment.sh:/etc/tower/conf.d/environment.sh"
- "{{ docker_compose_dir }}/credentials.py:/etc/tower/conf.d/credentials.py"
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
{% if project_data_dir is defined %}
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
{% endif %}
@ -125,15 +127,19 @@ services:
volumes:
- "{{ docker_compose_dir }}/redis.conf:/usr/local/etc/redis/redis.conf:ro"
- "{{ docker_compose_dir }}/redis_socket:/var/run/redis/:rw"
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
memcached:
image: "{{ memcached_image }}:{{ memcached_version }}"
container_name: awx_memcached
command: ["-s", "/var/run/memcached/memcached.sock", "-a", "0666"]
restart: unless-stopped
environment:
http_proxy: {{ http_proxy | default('') }}
https_proxy: {{ https_proxy | default('') }}
no_proxy: {{ no_proxy | default('') }}
volumes:
- "{{ docker_compose_dir }}/memcached_socket:/var/run/memcached/:rw"
{% if pg_hostname is not defined %}
postgres:

View File

@ -6,7 +6,5 @@ DATABASE_PASSWORD={{ pg_password|default('awxpass')|quote }}
{% if pg_admin_password is defined %}
DATABASE_ADMIN_PASSWORD={{ pg_admin_password|quote }}
{% endif %}
MEMCACHED_HOST={{ memcached_hostname|default('memcached') }}
MEMCACHED_PORT={{ memcached_port|default('11211')|quote }}
AWX_ADMIN_USER={{ admin_user|quote }}
AWX_ADMIN_PASSWORD={{ admin_password|quote }}

View File

@ -91,15 +91,6 @@ data:
'ROUTING': 'awx.main.routing.channel_routing',
'CONFIG': {'url': BROKER_URL}}
}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '{}:{}'.format("localhost", "11211")
},
'ephemeral': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
---
apiVersion: v1
kind: ConfigMap

View File

@ -30,6 +30,7 @@ services:
volumes:
- "../:/awx_devel"
- "./redis/redis_socket_ha_1:/var/run/redis/"
- "./memcached/:/var/run/memcached"
ports:
- "5899-5999:5899-5999"
awx-2:
@ -48,6 +49,7 @@ services:
volumes:
- "../:/awx_devel"
- "./redis/redis_socket_ha_2:/var/run/redis/"
- "./memcached/:/var/run/memcached"
ports:
- "7899-7999:7899-7999"
awx-3:
@ -67,6 +69,7 @@ services:
volumes:
- "../:/awx_devel"
- "./redis/redis_socket_ha_3:/var/run/redis/"
- "./memcached/:/var/run/memcached"
ports:
- "8899-8999:8899-8999"
redis_1:
@ -103,5 +106,9 @@ services:
image: postgres:10
container_name: tools_postgres_1
memcached:
user: ${CURRENT_UID}
image: memcached:alpine
container_name: tools_memcached_1
command: ["-s", "/var/run/memcached/memcached.sock", "-a", "0666"]
volumes:
- "./memcached/:/var/run/memcached"

View File

@ -33,6 +33,7 @@ services:
- "../:/awx_devel"
- "../awx/projects/:/var/lib/awx/projects/"
- "./redis/redis_socket_standalone:/var/run/redis/"
- "./memcached/:/var/run/memcached"
privileged: true
# A useful container that simply passes through log messages to the console
# helpful for testing awx/tower logging
@ -50,10 +51,12 @@ services:
environment:
POSTGRES_HOST_AUTH_METHOD: trust
memcached:
user: ${CURRENT_UID}
image: memcached:alpine
container_name: tools_memcached_1
ports:
- "11211:11211"
command: ["-s", "/var/run/memcached/memcached.sock", "-a", "0666"]
volumes:
- "./memcached/:/var/run/memcached"
redis:
image: redis:latest
container_name: tools_redis_1

View File

@ -3,7 +3,6 @@ set +x
# Wait for the databases to come up
ansible -i "127.0.0.1," -c local -v -m wait_for -a "host=postgres port=5432" all
ansible -i "127.0.0.1," -c local -v -m wait_for -a "host=memcached port=11211" all
ansible -i "127.0.0.1," -c local -v -m wait_for -a "path=/var/run/redis/redis.sock" all
# In case AWX in the container wants to connect to itself, use "docker exec" to attach to the container otherwise