- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在,我正在使用Helm替换values.yaml
文件中的值来替换文件中的变量,以创建ConfigMap,该映射对于间隔正确的条目非常有效。
我有以下问题:
CELERY_BROKER_URL = "amqp://admin:admin@{{ .Values.env.RABBITMQ_HOST }}:5672/"
helm install
时导致此错误:
Error: render error in "mynamespace-nonprod-chart/templates/configmap.yaml": template: mynamespace-nonprod-chart/templates/configmap.yaml:10:4: executing "mynamespace-nonprod-chart/templates/configmap.yaml" at <tpl (.Files.Glob "conf/*").AsConfig .>: error calling tpl: Error during tpl function execution for "settings.py: \"\\\"\\\"\\\"\\nDjango settings for imagegateway project.\\n\\nGenerated by 'django-admin\n startproject' using Django 1.11.3.\\n\\nFor more information on this file, see\\nhttps://docs.djangoproject.com/en/1.11/topics/settings/\\n\\nFor\n the full list of settings and their values, see\\nhttps://docs.djangoproject.com/en/1.11/ref/settings/\\n\\\"\\\"\\\"\\n\\nimport\n os\\n\\nfrom kombu import Exchange, Queue\\n\\n\\n# Image Config\\nIMAGE_ASPECT_RATIO\n = (4,3) # 4:3\\nMLS_BASE_URL = 'http://www.torontomls.net/MLSMULTIPHOTOS/FULL'\\nCALLBACK_KEY\n = 'SECRET'\\n\\nBASE_URL = 'https://media-dev.mydomain.ca'\\n\\n#\n Build paths inside the project like this: os.path.join(BASE_DIR, ...)\\nBASE_DIR\n = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\\n\\nMAXIMUM_HASH_DISTANCE\n = 5\\n\\n# SECURITY WARNING: keep the secret key used in production secret!\\nSECRET_KEY\n = 'mysecretkey'\\n\\n# SECURITY WARNING: don't run with debug turned on in production!\\n#\n DEBUG = False\\nDEBUG = True\\n\\nALLOWED_HOSTS = ['0.0.0.0', '*']\\n\\n# Celery\\n\\n#\n {{ .Values.env.INGRESS_CONTROLLER_ENDPOINT }} TEST this\\nCELERY_BROKER_URL = \\\"amqp://admin:xWQ7ye7YotNif@{{\n .Values.env.RABBITMQ_HOST }}:5672/\\\"\\nCELERY_ACCEPT_CONTENT = ['application/json']\\nCELERY_TASK_SERIALIZER\n = 'json'\\nCELERY_RESULT_SERIALIZER = 'json'\\nCELERY_RESULT_BACKEND = 'redis://dummyuser:R3dis0nEKS!@redis-imagegateway-dev-shared-headless'\\nCELERY_RESULT_PERSISTENT\n = False\\nCELERY_TIMEZONE = 'Canada/Eastern'\\nCELERY_ALWAYS_EAGER = False \\nCELERY_ACKS_LATE\n = True \\nCELERYD_PREFETCH_MULTIPLIER = 1\\nCELERY_TASK_PUBLISH_RETRY = True \\nCELERY_DISABLE_RATE_LIMITS\n = False\\nCELERY_IMPORTS = ('garden.tasks', 'keeper.tasks', 'tourist.tasks',)\\nCELERY_DEFAULT_QUEUE\n = 'default'\\nCELERY_DEFAULT_EXCHANGE_TYPE = 'topic'\\nCELERY_DEFAULT_ROUTING_KEY\n = 'default'\\nCELERYD_TASK_SOFT_TIME_LIMIT = 60\\n\\nCELERY_TASK_QUEUES = (\\n Queue('tourist',\n Exchange('tourist'), routing_key='tourist.#', queue_arguments={'x-max-priority':\n 1}),\\n Queue('default', Exchange('default'), routing_key='default', queue_arguments={'x-max-priority':\n 5}),\\n Queue('garden', Exchange('garden'), routing_key='garden.#', queue_arguments={'x-max-priority':\n 10}),\\n Queue('keeper', Exchange('keeper'), routing_key='keeper.#', queue_arguments={'x-max-priority':\n 10}),\\n)\\n\\nCELERY_TASK_ROUTES = {\\n 'garden.tasks.fetch_mls_image' : {'queue':\n 'garden'},\\n 'garden.tasks.save_image' : {'queue': 'garden'},\\n 'garden.tasks.do_callback'\n : {'queue': 'garden'},\\n 'garden.tasks.clear_cloudflare_cache' : {'queue': 'garden'},\\n\n \\ 'tourist.tasks.get_fetcher' : {'queue': 'tourist'},\\n 'tourist.tasks.get_tour_urls'\n : {'queue': 'tourist'},\\n 'tourist.tasks.download_tour_images' : {'queue': 'tourist'},\\n\n \\ 'tourist.tasks.smallest_image_size' : {'queue': 'tourist'},\\n 'tourist.tasks.hash_and_compare'\n : {'queue': 'tourist'},\\n 'tourist.tasks.process_tours' : {'queue': 'tourist'},\\n\n \\ 'tourist.tasks.all_done' : {'queue': 'tourist'},\\n 'tourist.tasks.save_hd_images'\n : {'queue': 'tourist'},\\n 'keeper.tasks.create_sizes' : {'queue': 'keeper'},\\n\n \\ 'celery_tasks.debug_task': {'queue': 'default'},\\n}\\n\\n# Application definition\\n\\nINSTALLED_APPS\n = [\\n # Project\\n 'celery',\\n 'garden', # deals with retrieval of images\\n\n \\ 'keeper', # deals with resizing and image processing tasks\\n 'tourist', #\n deals with virtual tours\\n # Vendor Packages\\n 'djangocms_admin_style',\\n\n \\ # Django\\n 'django.contrib.admin',\\n 'django.contrib.auth',\\n 'django.contrib.contenttypes',\\n\n \\ 'django.contrib.sessions',\\n 'django.contrib.messages',\\n 'django.contrib.staticfiles',\\n]\\n\\nMIDDLEWARE\n = [\\n 'django.middleware.security.SecurityMiddleware',\\n 'django.contrib.sessions.middleware.SessionMiddleware',\\n\n \\ 'django.middleware.common.CommonMiddleware',\\n 'django.middleware.csrf.CsrfViewMiddleware',\\n\n \\ 'django.contrib.auth.middleware.AuthenticationMiddleware',\\n 'django.contrib.messages.middleware.MessageMiddleware',\\n\n \\ 'django.middleware.clickjacking.XFrameOptionsMiddleware',\\n]\\n\\nROOT_URLCONF\n = 'imagegateway.urls'\\n\\nTEMPLATES = [\\n {\\n 'BACKEND': 'django.template.backends.django.DjangoTemplates',\\n\n \\ 'DIRS': ['templates'],\\n 'APP_DIRS': True,\\n 'OPTIONS': {\\n\n \\ 'context_processors': [\\n 'django.template.context_processors.debug',\\n\n \\ 'django.template.context_processors.request',\\n 'django.contrib.auth.context_processors.auth',\\n\n \\ 'django.contrib.messages.context_processors.messages',\\n ],\\n\n \\ },\\n },\\n]\\n\\nWSGI_APPLICATION = 'imagegateway.wsgi.application'\\n\\n\\n#\n Database\\n\\nDATABASES = {\\n 'default': {\\n 'ENGINE': 'django.db.backends.postgresql',\\n\n \\ 'NAME': 'imagegateway',\\n 'USER': 'postgres',\\n 'PASSWORD':\n 'PostGresQL123',\\n 'HOST': 'postgresql-imagegateway-dev-shared-headless',\\n\n \\ 'PORT': 5432,\\n }\\n}\\n\\n\\n# Password validation\\n\\nAUTH_PASSWORD_VALIDATORS\n = [\\n {\\n 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',\\n\n \\ },\\n {\\n 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',\\n\n \\ },\\n {\\n 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',\\n\n \\ },\\n {\\n 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',\\n\n \\ },\\n]\\n\\n\\n# Internationalization\\n\\nLANGUAGE_CODE = 'en-us'\\n\\nTIME_ZONE =\n 'UTC'\\n\\nUSE_I18N = True\\n\\nUSE_L10N = True\\n\\nUSE_TZ = True\\n\\n\\n# Static files\n (CSS, JavaScript, Images)\\n\\nSTATIC_URL = '/static/'\\nSTATIC_ROOT = os.path.join(BASE_DIR,\n 'static/')\\n\\n\\n# Media files (Images)\\n\\nMEDIA_URL = '/media/'\\n\\n# Controls whether\n Keras and backend is imported every server restart to improve restart times\\n# Only\n set the first bool!!! Then in production when DEBUG is set to false it will default\n to True.\\n# Example: \\n# WITH_IMAGE_CLASSIFIER = True if DEBUG else True \\n#\n or WITH_IMAGE_CLASSIFIER = False if DEBUG else True\\nWITH_IMAGE_CLASSIFIER = True\n if DEBUG else True\\n\\n# 20MB\\nFILE_UPLOAD_MAX_MEMORY_SIZE = 20971520\\nDATA_UPLOAD_MAX_MEMORY_SIZE\n = 20971520\\n\\n# Cloudflare\\nCLOUDFLARE_API_URL = 'https://api.cloudflare.com/client/v4/'\\nCLOUDFLARE_API_KEY\n = ''\\nCLOUDFLARE_API_EMAIL = ''\\nCLOUDFLARE_ZONE_ID = ''\\n\"\n": parse error in "mynamespace-nonprod-chart/templates/configmap.yaml": template: mynamespace-nonprod-chart/templates/configmap.yaml:12: unexpected unclosed action in command
env.RABBITMQ_HOST:rabbitmq.mydomain.com
,我希望替换值是:
CELERY_BROKER_URL = "amqp://admin:admin@rabbitmq.mydomain.com:5672/"
useCustomApplicatonConfigs:
- mountPath: /var/www/html/django
type: py
name:
- settings
env:
CELERY_BROKER_URL: "amqp://admin:xWQ7ye7YotNif@rabbitmq-imagegateway-dev-shared-headless:5672"
@
或其他内容?
最佳答案
为了使配置生效,我必须更改两件事。
第一个问题是我使用的是yaml注释,而模板注释则在运行helm install
时尝试替换,因此我将其完全删除。我应该一直使用{{-/*这是一条评论。 */-}},而不是#。
第二个问题是花括号{{
和}}
之间的空格。
前:
CELERY_BROKER_URL = "amqp://{{ .Values.env.RABBITMQ_USER }}:{{ .Values.env.RABBITMQ_PASSWORD }}@{{ .Values.env.RABBITMQ_HOST }}:{{ .Values.env.RABBITMQ_PORT }}/"
CELERY_BROKER_URL = "amqp://{{.Values.env.RABBITMQ_USER}}:{{.Values.env.RABBITMQ_PASSWORD}}@{{.Values.env.RABBITMQ_HOST}}:{{.Values.env.RABBITMQ_PORT}}/"
关于go - 替换Helm中没有空格的字符串中的值-命令中意外的未关闭操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58614929/
我的问题:非常具体。我正在尝试想出解析以下文本的最简单方法: ^^domain=domain_value^^version=version_value^^account_type=account_ty
好吧,这就是我的困境: 我正在为 Reddit 子版 block 开发常见问题解答机器人。我在 bool 逻辑方面遇到了麻烦,需要一双更有经验的眼睛(这是我在 Python 中的第一次冒险)。现在,该
它首先遍历所有 y 值,然后遍历所有 x 值。我需要 X 和 y 同时改变。 For x = 3 To lr + 1 For y = 2 To lr anyl.Cells(x, 1)
假设我有一个包含 2 列的 Excel 表格:单元格 A1 到 A10 中的日期和 B1 到 B10 中的值。 我想对五月日期的所有值求和。我有3种可能性: {=SUM((MONTH(A1:A10)=
如何转换 Z-score来自 Z-distribution (standard normal distribution, Gaussian distribution)到 p-value ?我还没有找到
我正在重写一些 Javascript 代码以在 Excel VBA 中工作。由于在这个网站上搜索,我已经设法翻译了几乎所有的 Javascript 代码!但是,有些代码我无法准确理解它在做什么。这是一
我遇到过包含日期格式的时间戳日期的情况。然后我想构建一个图表,显示“点击”项目的数量“每天”, //array declaration $array1 = array("Date" => 0); $a
我是scala的新手! 我的问题是,是否有包含成员的案例类 myItem:Option[String] 当我构造类时,我需要将字符串内容包装在: Option("some string") 要么 So
我正在用 PHP 创建一个登录系统。我需要用户使用他或她的用户名或电子邮件或电话号码登录然后使用密码。因为我知道在 Java 中我们会像 email==user^ username == user 这
我在 C++ 项目上使用 sqlite,但是当我在具有文本值的列上使用 WHERE 时出现问题 我创建了一个 sqlite 数据库: CREATE TABLE User( id INTEGER
当构造函数是显式时,它不用于隐式转换。在给定的代码片段中,构造函数被标记为 explicit。那为什么在 foo obj1(10.25); 情况下它可以工作,而在 foo obj2=10.25; 情况
我知道这是一个主观问题,所以如果需要关闭它,我深表歉意,但我觉得它经常出现,让我想知道是否普遍偏爱一种形式而不是另一种形式。 显然,最好的答案是“重构代码,这样你就不需要测试是否存在错误”,但有时没有
这两个 jQuery 选择器有什么区别? 以下是来自 w3schools.com 的定义: [attribute~=value] 选择器选择带有特定属性,其值包含特定字符串。 [attribute*=
为什么我们需要CSS [attribute|=value] Selector根本当 CSS3 [attribute*=value] Selector基本上完成相同的事情,浏览器兼容性几乎相似?是否存在
我正在解决 regx 问题。我已经有一个像这样的 regx [0-9]*([.][0-9]{2})。这是 amont 格式验证。现在,通过此验证,我想包括不应提供 0 金额。比如 10 是有效的,但
我正在研究计算机科学 A 考试的样题,但无法弄清楚为什么以下问题的正确答案是正确的。 考虑以下方法。 public static void mystery(List nums) { for (
好的,我正在编写一个 Perl 程序,它有一个我收集的值的哈希值(完全在一个完全独立的程序中)并提供给这个 Perl 脚本。这个散列是 (string,string) 的散列。 我想通过 3 种方式对
我有一个表数据如下,来自不同的表。仅当第三列具有值“债务”并且第一列(日期)具有最大值时,我才想从第四列中获取最大值。最终值基于 MAX(DATE) 而不是 MAX(PRICE)。所以用简单的语言来说
我有一个奇怪的情况,只有错误状态保存到数据库中。当“状态”应该为 true 时,我的查询仍然执行 false。 我有具有此功能的 Controller public function change_a
我有一个交易表(针对所需列进行了简化): id client_id value 1 1 200 2 2 150 3 1
我是一名优秀的程序员,十分优秀!