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