e15d0356a66aef26039646f9019c01bd7404fd8c
[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   image_pull_policy:
46     type: string
47     description: |
48       ImagePullPolicy configuration for the pod.
49       Possible values: always, ifnotpresent, never
50     default: always
51   region_id:
52     type: string
53     description: Region ID to be created when starting the service
54     default: RegionOne
55   keystone_db_password:
56     type: string
57     description: Keystone DB Password
58     default: admin
59   mysql_uri:
60     type: string
61     description: |
62       Mysql uri with the following format:
63         mysql://<user>:<pass>@<host>:<port>/<database>
64   admin_username:
65     type: string
66     description: Admin username to be created when starting the service
67     default: admin
68   admin_password:
69     type: string
70     description: Admin password to be created when starting the service
71     default: admin
72   admin_project:
73     type: string
74     description: Admin project to be created when starting the service
75     default: admin
76   service_username:
77     type: string
78     description: Service Username to be created when starting the service
79     default: nbi
80   service_password:
81     type: string
82     description: Service Password to be created when starting the service
83     default: nbi
84   service_project:
85     type: string
86     description: Service Project to be created when starting the service
87     default: service
88   user_domain_name:
89     type: string
90     description: User domain name (Hardcoded in the container start.sh script)
91     default: default
92   project_domain_name:
93     type: string
94     description: |
95       Project domain name (Hardcoded in the container start.sh script)
96     default: default
97   token_expiration:
98     type: int
99     description: Token keys expiration in seconds
100     default: 172800
101   ldap_enabled:
102     type: boolean
103     description: Boolean to enable/disable LDAP authentication
104     default: false
105   ldap_authentication_domain_name:
106     type: string
107     description: Name of the domain which use LDAP authentication
108     default: ""
109   ldap_url:
110     type: string
111     description: URL of the LDAP server
112     default: "ldap://localhost"
113   ldap_bind_user:
114     type: string
115     description: User to bind and search for users
116     default: ""
117   ldap_bind_password:
118     type: string
119     description: Password to bind and search for users
120     default: ""
121   ldap_chase_referrals:
122     type: string
123     description: |
124       Sets keystone’s referral chasing behavior across directory partitions.
125       If left unset, the system’s default behavior will be used.
126     default: ""
127   ldap_page_size:
128     type: int
129     description: |
130       Defines the maximum number of results per page that keystone should
131       request from the LDAP server when listing objects. A value of zero (0)
132       disables paging.
133     default: 0
134   ldap_user_tree_dn:
135     type: string
136     description: |
137       Root of the tree in LDAP server in which Keystone will search for users
138     default: ""
139   ldap_user_objectclass:
140     type: string
141     description: |
142       LDAP object class that Keystone will filter on within user_tree_dn to
143       find user objects. Any objects of other classes will be ignored.
144     default: inetOrgPerson
145   ldap_user_id_attribute:
146     type: string
147     description: |
148       This set of options define the mapping to LDAP attributes for the three
149       key user attributes supported by Keystone. The LDAP attribute chosen for
150       user_id must be something that is immutable for a user and no more than
151       64 characters in length. Notice that Distinguished Name (DN) may be
152       longer than 64 characters and thus is not suitable. An uid, or mail may
153       be appropriate.
154     default: cn
155   ldap_user_name_attribute:
156     type: string
157     description: |
158       This set of options define the mapping to LDAP attributes for the three
159       key user attributes supported by Keystone. The LDAP attribute chosen for
160       user_id must be something that is immutable for a user and no more than
161       64 characters in length. Notice that Distinguished Name (DN) may be
162       longer than 64 characters and thus is not suitable. An uid, or mail may
163       be appropriate.
164     default: sn
165   ldap_user_pass_attribute:
166     type: string
167     description: |
168       This set of options define the mapping to LDAP attributes for the three
169       key user attributes supported by Keystone. The LDAP attribute chosen for
170       user_id must be something that is immutable for a user and no more than
171       64 characters in length. Notice that Distinguished Name (DN) may be
172       longer than 64 characters and thus is not suitable. An uid, or mail may
173       be appropriate.
174     default: userPassword
175   ldap_user_filter:
176     type: string
177     description: |
178       This filter option allow additional filter (over and above
179       user_objectclass) to be included into the search of user. One common use
180       of this is to provide more efficient searching, where the recommended
181       search for user objects is (&(objectCategory=person)(objectClass=user)).
182       By specifying user_objectclass as user and user_filter as
183       objectCategory=person in the Keystone configuration file, this can be
184       achieved.
185     default: ""
186   ldap_user_enabled_attribute:
187     type: string
188     description: |
189       In Keystone, a user entity can be either enabled or disabled. Setting
190       the above option will give a mapping to an equivalent attribute in LDAP,
191       allowing your LDAP management tools to disable a user.
192     default: enabled
193   ldap_user_enabled_mask:
194     type: int
195     description: |
196       Some LDAP schemas, rather than having a dedicated attribute for user
197       enablement, use a bit within a general control attribute (such as
198       userAccountControl) to indicate this. Setting user_enabled_mask will
199       cause Keystone to look at only the status of this bit in the attribute
200       specified by user_enabled_attribute, with the bit set indicating the
201       user is enabled.
202     default: 0
203   ldap_user_enabled_default:
204     type: string
205     description: |
206       Most LDAP servers use a boolean or bit in a control field to indicate
207       enablement. However, some schemas might use an integer value in an
208       attribute. In this situation, set user_enabled_default to the integer
209       value that represents a user being enabled.
210     default: "true"
211   ldap_user_enabled_invert:
212     type: boolean
213     description: |
214       Some LDAP schemas have an “account locked” attribute, which is the
215       equivalent to account being “disabled.” In order to map this to the
216       Keystone enabled attribute, you can utilize the user_enabled_invert
217       setting in conjunction with user_enabled_attribute to map the lock
218       status to disabled in Keystone.
219     default: false
220   ldap_group_objectclass:
221     type: string
222     description: The LDAP object class to use for groups.
223     default: groupOfNames
224   ldap_group_tree_dn:
225     type: string
226     description: The search base to use for groups.
227     default: ""
228   ldap_use_starttls:
229     type: boolean
230     description: |
231       Enable Transport Layer Security (TLS) for providing a secure connection
232       from Keystone to LDAP (StartTLS, not LDAPS).
233     default: false
234   ldap_tls_cacert_base64:
235     type: string
236     description: |
237       CA certificate in Base64 format (if you have the PEM file, text inside
238       "-----BEGIN CERTIFICATE-----"/"-----END CERTIFICATE-----" tags).
239     default: ""
240   ldap_tls_req_cert:
241     type: string
242     description: |
243       Defines how the certificates are checked for validity in the client
244       (i.e., Keystone end) of the secure connection (this doesn’t affect what
245       level of checking the server is doing on the certificates it receives
246       from Keystone). Possible values are "demand", "never", and "allow". The
247       default of demand means the client always checks the certificate and
248       will drop the connection if it is not provided or invalid. never is the
249       opposite—it never checks it, nor requires it to be provided. allow means
250       that if it is not provided then the connection is allowed to continue,
251       but if it is provided it will be checked—and if invalid, the connection
252       will be dropped.
253     default: demand