Adding HA support for Keystone charm
[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   image:
16     type: string
17     default: opensourcemano/keystone:latest
18     description: The docker image to install.
19   image_username:
20     type: string
21     description: |
22       The username for accessing the registry specified in image.
23     default: ""
24   image_password:
25     type: string
26     description: |
27       The password associated with image_username for accessing
28       the registry specified in image.
29     default: ""
30   max_file_size:
31     type: int
32     description: |
33       The maximum file size, in megabytes.
34
35       If there is a reverse proxy in front of Keystone, it may
36       need to be configured to handle the requested size.
37     default: 5
38   ingress_whitelist_source_range:
39     type: string
40     description: |
41       A comma-separated list of CIDRs to store in the
42       ingress.kubernetes.io/whitelist-source-range annotation.
43
44       This can be used to lock down access to
45       Keystone based on source IP address.
46     default: ""
47   tls_secret_name:
48     type: string
49     description: TLS Secret name
50     default: ""
51   site_url:
52     type: string
53     description: Ingress URL
54     default: ""
55   region_id:
56     type: string
57     description: Region ID to be created when starting the service
58     default: RegionOne
59   keystone_db_password:
60     type: string
61     description: Keystone DB Password
62     default: admin
63   admin_username:
64     type: string
65     description: Admin username to be created when starting the service
66     default: admin
67   admin_password:
68     type: string
69     description: Admin password to be created when starting the service
70     default: admin
71   admin_project:
72     type: string
73     description: Admin project to be created when starting the service
74     default: admin
75   service_username:
76     type: string
77     description: Service Username to be created when starting the service
78     default: nbi
79   service_password:
80     type: string
81     description: Service Password to be created when starting the service
82     default: nbi
83   service_project:
84     type: string
85     description: Service Project to be created when starting the service
86     default: service
87   user_domain_name:
88     type: string
89     description: User domain name (Hardcoded in the container start.sh script)
90     default: default
91   project_domain_name:
92     type: string
93     description: |
94       Project domain name (Hardcoded in the container start.sh script)
95     default: default
96   token_expiration:
97     type: int
98     description: Token keys expiration in seconds
99     default: 172800
100   ldap_enabled:
101     type: boolean
102     description: Boolean to enable/disable LDAP authentication
103     default: false
104   ldap_authentication_domain_name:
105     type: string
106     description: Name of the domain which use LDAP authentication
107     default: ""
108   ldap_url:
109     type: string
110     description: URL of the LDAP server
111     default: "ldap://localhost"
112   ldap_bind_user:
113     type: string
114     description: User to bind and search for users
115     default: ""
116   ldap_bind_password:
117     type: string
118     description: Password to bind and search for users
119     default: ""
120   ldap_user_tree_dn:
121     type: string
122     description: |
123       Root of the tree in LDAP server in which Keystone will search for users
124     default: ""
125   ldap_user_objectclass:
126     type: string
127     description: |
128       LDAP object class that Keystone will filter on within user_tree_dn to
129       find user objects. Any objects of other classes will be ignored.
130     default: inetOrgPerson
131   ldap_user_id_attribute:
132     type: string
133     description: |
134       This set of options define the mapping to LDAP attributes for the three
135       key user attributes supported by Keystone. The LDAP attribute chosen for
136       user_id must be something that is immutable for a user and no more than
137       64 characters in length. Notice that Distinguished Name (DN) may be
138       longer than 64 characters and thus is not suitable. An uid, or mail may
139       be appropriate.
140     default: cn
141   ldap_user_name_attribute:
142     type: string
143     description: |
144       This set of options define the mapping to LDAP attributes for the three
145       key user attributes supported by Keystone. The LDAP attribute chosen for
146       user_id must be something that is immutable for a user and no more than
147       64 characters in length. Notice that Distinguished Name (DN) may be
148       longer than 64 characters and thus is not suitable. An uid, or mail may
149       be appropriate.
150     default: sn
151   ldap_user_pass_attribute:
152     type: string
153     description: |
154       This set of options define the mapping to LDAP attributes for the three
155       key user attributes supported by Keystone. The LDAP attribute chosen for
156       user_id must be something that is immutable for a user and no more than
157       64 characters in length. Notice that Distinguished Name (DN) may be
158       longer than 64 characters and thus is not suitable. An uid, or mail may
159       be appropriate.
160     default: userPassword
161   ldap_user_filter:
162     type: string
163     description: |
164       This filter option allow additional filter (over and above
165       user_objectclass) to be included into the search of user. One common use
166       of this is to provide more efficient searching, where the recommended
167       search for user objects is (&(objectCategory=person)(objectClass=user)).
168       By specifying user_objectclass as user and user_filter as
169       objectCategory=person in the Keystone configuration file, this can be
170       achieved.
171     default: ""
172   ldap_user_enabled_attribute:
173     type: string
174     description: |
175       In Keystone, a user entity can be either enabled or disabled. Setting
176       the above option will give a mapping to an equivalent attribute in LDAP,
177       allowing your LDAP management tools to disable a user.
178     default: enabled
179   ldap_user_enabled_mask:
180     type: int
181     description: |
182       Some LDAP schemas, rather than having a dedicated attribute for user
183       enablement, use a bit within a general control attribute (such as
184       userAccountControl) to indicate this. Setting user_enabled_mask will
185       cause Keystone to look at only the status of this bit in the attribute
186       specified by user_enabled_attribute, with the bit set indicating the
187       user is enabled.
188     default: 0
189   ldap_user_enabled_default:
190     type: boolean
191     description: |
192       Most LDAP servers use a boolean or bit in a control field to indicate
193       enablement. However, some schemas might use an integer value in an
194       attribute. In this situation, set user_enabled_default to the integer
195       value that represents a user being enabled.
196     default: true
197   ldap_user_enabled_invert:
198     type: boolean
199     description: |
200       Some LDAP schemas have an “account locked” attribute, which is the
201       equivalent to account being “disabled.” In order to map this to the
202       Keystone enabled attribute, you can utilize the user_enabled_invert
203       setting in conjunction with user_enabled_attribute to map the lock
204       status to disabled in Keystone.
205     default: false
206   ldap_use_starttls:
207     type: boolean
208     description: |
209       Enable Transport Layer Security (TLS) for providing a secure connection
210       from Keystone to LDAP (StartTLS, not LDAPS).
211     default: false
212   ldap_tls_cacert_base64:
213     type: string
214     description: |
215       CA certificate in Base64 format (if you have the PEM file, text inside
216       "-----BEGIN CERTIFICATE-----"/"-----END CERTIFICATE-----" tags).
217     default: ""
218   ldap_tls_req_cert:
219     type: string
220     description: |
221       Defines how the certificates are checked for validity in the client
222       (i.e., Keystone end) of the secure connection (this doesn’t affect what
223       level of checking the server is doing on the certificates it receives
224       from Keystone). Possible values are "demand", "never", and "allow". The
225       default of demand means the client always checks the certificate and
226       will drop the connection if it is not provided or invalid. never is the
227       opposite—it never checks it, nor requires it to be provided. allow means
228       that if it is not provided then the connection is allowed to continue,
229       but if it is provided it will be checked—and if invalid, the connection
230       will be dropped.
231     default: demand