Feature 10884: Juju 2.9 support
[osm/devops.git] / installers / charm / keystone / config.yaml
1 # Copyright 2020 Canonical Ltd.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #     Unless required by applicable law or agreed to in writing, software
10 #     distributed under the License is distributed on an "AS IS" BASIS,
11 #     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #     See the License for the specific language governing permissions and
13 #     limitations under the License.
14 options:
15   max_file_size:
16     type: int
17     description: |
18       The maximum file size, in megabytes.
19
20       If there is a reverse proxy in front of Keystone, it may
21       need to be configured to handle the requested size.
22     default: 5
23   ingress_class:
24     type: string
25     description: |
26       Ingress class name. This is useful for selecting the ingress to be used
27       in case there are multiple ingresses in the underlying k8s clusters.
28   ingress_whitelist_source_range:
29     type: string
30     description: |
31       A comma-separated list of CIDRs to store in the
32       ingress.kubernetes.io/whitelist-source-range annotation.
33
34       This can be used to lock down access to
35       Keystone based on source IP address.
36     default: ""
37   tls_secret_name:
38     type: string
39     description: TLS Secret name
40     default: ""
41   site_url:
42     type: string
43     description: Ingress URL
44     default: ""
45   region_id:
46     type: string
47     description: Region ID to be created when starting the service
48     default: RegionOne
49   keystone_db_password:
50     type: string
51     description: Keystone DB Password
52     default: admin
53   mysql_host:
54     type: string
55     description: MySQL Host (external database)
56   mysql_port:
57     type: int
58     description: MySQL Port (external database)
59   mysql_root_password:
60     type: string
61     description: MySQL Root Password (external database)
62   admin_username:
63     type: string
64     description: Admin username to be created when starting the service
65     default: admin
66   admin_password:
67     type: string
68     description: Admin password to be created when starting the service
69     default: admin
70   admin_project:
71     type: string
72     description: Admin project to be created when starting the service
73     default: admin
74   service_username:
75     type: string
76     description: Service Username to be created when starting the service
77     default: nbi
78   service_password:
79     type: string
80     description: Service Password to be created when starting the service
81     default: nbi
82   service_project:
83     type: string
84     description: Service Project to be created when starting the service
85     default: service
86   user_domain_name:
87     type: string
88     description: User domain name (Hardcoded in the container start.sh script)
89     default: default
90   project_domain_name:
91     type: string
92     description: |
93       Project domain name (Hardcoded in the container start.sh script)
94     default: default
95   token_expiration:
96     type: int
97     description: Token keys expiration in seconds
98     default: 172800
99   ldap_enabled:
100     type: boolean
101     description: Boolean to enable/disable LDAP authentication
102     default: false
103   ldap_authentication_domain_name:
104     type: string
105     description: Name of the domain which use LDAP authentication
106     default: ""
107   ldap_url:
108     type: string
109     description: URL of the LDAP server
110     default: "ldap://localhost"
111   ldap_bind_user:
112     type: string
113     description: User to bind and search for users
114     default: ""
115   ldap_bind_password:
116     type: string
117     description: Password to bind and search for users
118     default: ""
119   ldap_chase_referrals:
120     type: string
121     description: |
122       Sets keystone’s referral chasing behavior across directory partitions.
123       If left unset, the system’s default behavior will be used.
124     default: ""
125   ldap_page_size:
126     type: int
127     description: |
128       Defines the maximum number of results per page that keystone should
129       request from the LDAP server when listing objects. A value of zero (0)
130       disables paging.
131     default: 0
132   ldap_user_tree_dn:
133     type: string
134     description: |
135       Root of the tree in LDAP server in which Keystone will search for users
136     default: ""
137   ldap_user_objectclass:
138     type: string
139     description: |
140       LDAP object class that Keystone will filter on within user_tree_dn to
141       find user objects. Any objects of other classes will be ignored.
142     default: inetOrgPerson
143   ldap_user_id_attribute:
144     type: string
145     description: |
146       This set of options define the mapping to LDAP attributes for the three
147       key user attributes supported by Keystone. The LDAP attribute chosen for
148       user_id must be something that is immutable for a user and no more than
149       64 characters in length. Notice that Distinguished Name (DN) may be
150       longer than 64 characters and thus is not suitable. An uid, or mail may
151       be appropriate.
152     default: cn
153   ldap_user_name_attribute:
154     type: string
155     description: |
156       This set of options define the mapping to LDAP attributes for the three
157       key user attributes supported by Keystone. The LDAP attribute chosen for
158       user_id must be something that is immutable for a user and no more than
159       64 characters in length. Notice that Distinguished Name (DN) may be
160       longer than 64 characters and thus is not suitable. An uid, or mail may
161       be appropriate.
162     default: sn
163   ldap_user_pass_attribute:
164     type: string
165     description: |
166       This set of options define the mapping to LDAP attributes for the three
167       key user attributes supported by Keystone. The LDAP attribute chosen for
168       user_id must be something that is immutable for a user and no more than
169       64 characters in length. Notice that Distinguished Name (DN) may be
170       longer than 64 characters and thus is not suitable. An uid, or mail may
171       be appropriate.
172     default: userPassword
173   ldap_user_filter:
174     type: string
175     description: |
176       This filter option allow additional filter (over and above
177       user_objectclass) to be included into the search of user. One common use
178       of this is to provide more efficient searching, where the recommended
179       search for user objects is (&(objectCategory=person)(objectClass=user)).
180       By specifying user_objectclass as user and user_filter as
181       objectCategory=person in the Keystone configuration file, this can be
182       achieved.
183     default: ""
184   ldap_user_enabled_attribute:
185     type: string
186     description: |
187       In Keystone, a user entity can be either enabled or disabled. Setting
188       the above option will give a mapping to an equivalent attribute in LDAP,
189       allowing your LDAP management tools to disable a user.
190     default: enabled
191   ldap_user_enabled_mask:
192     type: int
193     description: |
194       Some LDAP schemas, rather than having a dedicated attribute for user
195       enablement, use a bit within a general control attribute (such as
196       userAccountControl) to indicate this. Setting user_enabled_mask will
197       cause Keystone to look at only the status of this bit in the attribute
198       specified by user_enabled_attribute, with the bit set indicating the
199       user is enabled.
200     default: 0
201   ldap_user_enabled_default:
202     type: string
203     description: |
204       Most LDAP servers use a boolean or bit in a control field to indicate
205       enablement. However, some schemas might use an integer value in an
206       attribute. In this situation, set user_enabled_default to the integer
207       value that represents a user being enabled.
208     default: "true"
209   ldap_user_enabled_invert:
210     type: boolean
211     description: |
212       Some LDAP schemas have an “account locked” attribute, which is the
213       equivalent to account being “disabled.” In order to map this to the
214       Keystone enabled attribute, you can utilize the user_enabled_invert
215       setting in conjunction with user_enabled_attribute to map the lock
216       status to disabled in Keystone.
217     default: false
218   ldap_group_objectclass:
219     type: string
220     description: The LDAP object class to use for groups.
221     default: groupOfNames
222   ldap_group_tree_dn:
223     type: string
224     description: The search base to use for groups.
225     default: ""
226   ldap_use_starttls:
227     type: boolean
228     description: |
229       Enable Transport Layer Security (TLS) for providing a secure connection
230       from Keystone to LDAP (StartTLS, not LDAPS).
231     default: false
232   ldap_tls_cacert_base64:
233     type: string
234     description: |
235       CA certificate in Base64 format (if you have the PEM file, text inside
236       "-----BEGIN CERTIFICATE-----"/"-----END CERTIFICATE-----" tags).
237     default: ""
238   ldap_tls_req_cert:
239     type: string
240     description: |
241       Defines how the certificates are checked for validity in the client
242       (i.e., Keystone end) of the secure connection (this doesn’t affect what
243       level of checking the server is doing on the certificates it receives
244       from Keystone). Possible values are "demand", "never", and "allow". The
245       default of demand means the client always checks the certificate and
246       will drop the connection if it is not provided or invalid. never is the
247       opposite—it never checks it, nor requires it to be provided. allow means
248       that if it is not provided then the connection is allowed to continue,
249       but if it is provided it will be checked—and if invalid, the connection
250       will be dropped.
251     default: demand