)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"bf96590ad2069022747afb60423ded7d7e5e44d6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Make a kubeconfig file available through download along with openrc and clouds.yaml files, as Kubernetes can use OpenStack application credentials for authentication."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"More information here:"},{"line_number":12,"context_line":"https://superuser.openstack.org/articles/strengthening-open-infrastructure-integrating-openstack-and-kubernetes/"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I298370e7abf4f0d480bd5199060f24bab6d6daaa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1fcbff3d_7188f070","line":12,"updated":"2019-04-20 13:51:15.000000000","message":"This is a new feature. Could you file a wishlist bug (or a blueprint)?","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"2ded04e0fb4f7f17ae28a2767241d8df7df6a60e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Make a kubeconfig file available through download along with openrc and clouds.yaml files, as Kubernetes can use OpenStack application credentials for authentication."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"More information here:"},{"line_number":12,"context_line":"https://superuser.openstack.org/articles/strengthening-open-infrastructure-integrating-openstack-and-kubernetes/"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I298370e7abf4f0d480bd5199060f24bab6d6daaa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bfb3d3c7_69d430be","line":12,"in_reply_to":"1fcbff3d_7188f070","updated":"2019-05-23 19:07:14.000000000","message":"New blueprint here: https://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"3d2d4e79580c4bf9590de16645b76b8468a81dc3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Claudio Pisa \u003cclaudio.pisa@garr.it\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-05-22 13:53:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Downloadable Kubernetes configuration file based on application credentials"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Make a kubeconfig file available through download along with openrc and clouds.yaml files, as Kubernetes can use OpenStack application credentials for authentication."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bfb3d3c7_dfd5cae6","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":164},"updated":"2019-05-22 14:55:16.000000000","message":"Please, provide a commit message that follows OpenStack guidelines [1].\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"92f31dd04507b668152399c8c520ef353bbac31d"},{"author":{"_account_id":27822,"name":"pengyuesheng","email":"pengyuesheng@gohighsec.com","username":"pengyuesheng"},"change_message_id":"113a40ef89aff92881e75e857fc0fc559ce6db38","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Claudio Pisa \u003cclaudio.pisa@garr.it\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-05-22 13:53:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Downloadable Kubernetes configuration file based on application credentials"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Make a kubeconfig file available through download along with openrc and clouds.yaml files, as Kubernetes can use OpenStack application credentials for authentication."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bfb3d3c7_e6f4bed1","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":164},"in_reply_to":"bfb3d3c7_dfd5cae6","updated":"2019-05-23 01:58:11.000000000","message":"Commit message length should be \u003c 80 chars.","commit_id":"92f31dd04507b668152399c8c520ef353bbac31d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8945dc84d319c2f3a1b031505d9a6a401eedce08","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Generate a kubeconfig file and make it available to download along with"},{"line_number":11,"context_line":"the openrc and clouds.yaml files."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"blueprint: https://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I298370e7abf4f0d480bd5199060f24bab6d6daaa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_388e6a2e","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":79},"updated":"2019-05-23 11:44:20.000000000","message":"Could you follow the developer guideline [1]?\n\nThis should be:\n\n  blueprint kubernetes-config-gen\n\nso that the review is linked to the blueprint automatically.\n\nThe gerrit  topic name need to follow the guideline too.\n\n[1 https://docs.openstack.org/infra/manual/developers.html#development-workflow","commit_id":"72dec72f49e7f80fdd17dad76a91e61201fa82a9"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"9f33c3e24cb03f99b42385378e93021e9cce3c0a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Generate a kubeconfig file and make it available to download along with"},{"line_number":11,"context_line":"the openrc and clouds.yaml files."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"blueprint: https://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I298370e7abf4f0d480bd5199060f24bab6d6daaa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_c5a2bf4b","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":79},"in_reply_to":"bfb3d3c7_388e6a2e","updated":"2019-06-06 14:24:28.000000000","message":"Done","commit_id":"72dec72f49e7f80fdd17dad76a91e61201fa82a9"}],"openstack_dashboard/dashboards/identity/application_credentials/forms.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"bf96590ad2069022747afb60423ded7d7e5e44d6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    name \u003d forms.CharField(max_length\u003d255, label\u003d_(\"Name\"))"},{"line_number":33,"context_line":"    namespace \u003d forms.CharField(max_length\u003d255,"},{"line_number":34,"context_line":"                                label\u003d_(\"Namespace (Kubernetes)\"),"},{"line_number":35,"context_line":"                                required\u003dFalse)"},{"line_number":36,"context_line":"    description \u003d forms.CharField("},{"line_number":37,"context_line":"        widget\u003dforms.widgets.Textarea(attrs\u003d{\u0027rows\u0027: 4}),"},{"line_number":38,"context_line":"        label\u003d_(\"Description\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1fcbff3d_f19380a2","line":35,"updated":"2019-04-20 13:51:15.000000000","message":"The application credential feature is not specific to kubernetes. How should users who are not related to kubernetes understand this field? Perhaps it is the most important point on this proposal. Could you show us a pointer to keystone API? I would like to clarify this field is specific to kubernetes from the point of view of keystone (as the identity API level).","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"2ded04e0fb4f7f17ae28a2767241d8df7df6a60e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    name \u003d forms.CharField(max_length\u003d255, label\u003d_(\"Name\"))"},{"line_number":33,"context_line":"    namespace \u003d forms.CharField(max_length\u003d255,"},{"line_number":34,"context_line":"                                label\u003d_(\"Namespace (Kubernetes)\"),"},{"line_number":35,"context_line":"                                required\u003dFalse)"},{"line_number":36,"context_line":"    description \u003d forms.CharField("},{"line_number":37,"context_line":"        widget\u003dforms.widgets.Textarea(attrs\u003d{\u0027rows\u0027: 4}),"},{"line_number":38,"context_line":"        label\u003d_(\"Description\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_ec682e88","line":35,"in_reply_to":"1fcbff3d_f19380a2","updated":"2019-05-23 19:07:14.000000000","message":"There is no specific API in Keystone. Kubernetes can use the application credentials Keystone API to authenticate and authorize users. I have added a boolean switch in the configuration file.","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":27822,"name":"pengyuesheng","email":"pengyuesheng@gohighsec.com","username":"pengyuesheng"},"change_message_id":"d6ab3d4d666944ed168e5cdaa8fcd9ffefea01cc","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            )"},{"line_number":102,"context_line":"            self.request.session[\u0027application_credential\u0027] \u003d \\"},{"line_number":103,"context_line":"                new_app_cred.to_dict()"},{"line_number":104,"context_line":"            self.request.session[\u0027application_credential\u0027][\u0027namespace\u0027] \u003d data[\u0027namespace\u0027]"},{"line_number":105,"context_line":"            request.method \u003d \u0027GET\u0027"},{"line_number":106,"context_line":"            return self.next_view.as_view()(request)"},{"line_number":107,"context_line":"        except exceptions.Conflict:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_b4054413","line":104,"range":{"start_line":104,"start_character":12,"end_line":104,"end_character":91},"updated":"2019-04-19 06:43:30.000000000","message":"Cannot exceed 80 characters","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"2ded04e0fb4f7f17ae28a2767241d8df7df6a60e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            )"},{"line_number":102,"context_line":"            self.request.session[\u0027application_credential\u0027] \u003d \\"},{"line_number":103,"context_line":"                new_app_cred.to_dict()"},{"line_number":104,"context_line":"            self.request.session[\u0027application_credential\u0027][\u0027namespace\u0027] \u003d data[\u0027namespace\u0027]"},{"line_number":105,"context_line":"            request.method \u003d \u0027GET\u0027"},{"line_number":106,"context_line":"            return self.next_view.as_view()(request)"},{"line_number":107,"context_line":"        except exceptions.Conflict:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_09049449","line":104,"range":{"start_line":104,"start_character":12,"end_line":104,"end_character":91},"in_reply_to":"3fce034c_b4054413","updated":"2019-05-23 19:07:14.000000000","message":"Done","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"198e23078713743ae677074d8e15ebd6f0e3ded2","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    kubernetes_namespace \u003d forms.CharField(max_length\u003d255,"},{"line_number":55,"context_line":"                                           label\u003d_(\"Kubernetes Namespace\"),"},{"line_number":56,"context_line":"                                           initial\u003d\"default\","},{"line_number":57,"context_line":"                                           required\u003dFalse)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, request, *args, **kwargs):"},{"line_number":60,"context_line":"        self.next_view \u003d kwargs.pop(\u0027next_view\u0027, None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_0878bfc1","line":57,"updated":"2019-06-11 13:49:05.000000000","message":"I would like to see some help message. Especially, I (as a user) would like to know this is passed to keystone or not and what is affectped. You need to provide enough information for non-k8s users on a same cloud. Even if k8s is common, this is not all. In my understanding, this information is only used in generating kubeconfig file.","commit_id":"bed21f83b55bf92451b77ec3dc4ebea6405b0886"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"63a988960d293b90f479c7b63492d62d140cf26c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    kubernetes_namespace \u003d forms.CharField(max_length\u003d255,"},{"line_number":55,"context_line":"                                           label\u003d_(\"Kubernetes Namespace\"),"},{"line_number":56,"context_line":"                                           initial\u003d\"default\","},{"line_number":57,"context_line":"                                           required\u003dFalse)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, request, *args, **kwargs):"},{"line_number":60,"context_line":"        self.next_view \u003d kwargs.pop(\u0027next_view\u0027, None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_018839c4","line":57,"in_reply_to":"9fb8cfa7_0878bfc1","updated":"2019-07-04 09:39:16.000000000","message":"Yes. The information is only used for generating the kubeconfig file. Added an informational message here: https://review.opendev.org/#/c/653794/6/openstack_dashboard/dashboards/identity/application_credentials/templates/application_credentials/_create.html","commit_id":"bed21f83b55bf92451b77ec3dc4ebea6405b0886"}],"openstack_dashboard/dashboards/identity/application_credentials/views.py":[{"author":{"_account_id":27822,"name":"pengyuesheng","email":"pengyuesheng@gohighsec.com","username":"pengyuesheng"},"change_message_id":"d6ab3d4d666944ed168e5cdaa8fcd9ffefea01cc","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        context[\u0027download_openrc_url\u0027] \u003d reverse("},{"line_number":109,"context_line":"            \u0027horizon:identity:application_credentials:download_openrc\u0027)"},{"line_number":110,"context_line":"        context[\u0027download_kubeconfig_url\u0027] \u003d reverse("},{"line_number":111,"context_line":"           \u0027horizon:identity:application_credentials:download_kubeconfig\u0027)"},{"line_number":112,"context_line":"        context[\u0027download_clouds_yaml_url\u0027] \u003d reverse("},{"line_number":113,"context_line":"            \u0027horizon:identity:application_credentials:download_clouds_yaml\u0027)"},{"line_number":114,"context_line":"        return context"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_f4166c49","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":11},"updated":"2019-04-19 06:43:30.000000000","message":"Should be four spaces","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"2ded04e0fb4f7f17ae28a2767241d8df7df6a60e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        context[\u0027download_openrc_url\u0027] \u003d reverse("},{"line_number":109,"context_line":"            \u0027horizon:identity:application_credentials:download_openrc\u0027)"},{"line_number":110,"context_line":"        context[\u0027download_kubeconfig_url\u0027] \u003d reverse("},{"line_number":111,"context_line":"           \u0027horizon:identity:application_credentials:download_kubeconfig\u0027)"},{"line_number":112,"context_line":"        context[\u0027download_clouds_yaml_url\u0027] \u003d reverse("},{"line_number":113,"context_line":"            \u0027horizon:identity:application_credentials:download_clouds_yaml\u0027)"},{"line_number":114,"context_line":"        return context"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_a9f30873","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":11},"in_reply_to":"3fce034c_f4166c49","updated":"2019-05-23 19:07:14.000000000","message":"Done","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":27822,"name":"pengyuesheng","email":"pengyuesheng@gohighsec.com","username":"pengyuesheng"},"change_message_id":"d6ab3d4d666944ed168e5cdaa8fcd9ffefea01cc","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                   application_credential_secret\u003dapp_cred[\u0027secret\u0027],"},{"line_number":140,"context_line":"                   kubernetes_namespace\u003dapp_cred[\u0027namespace\u0027],"},{"line_number":141,"context_line":"                   kubernetes_url\u003dsettings.KUBECONFIG_KUBERNETES_URL,"},{"line_number":142,"context_line":"                   kubernetes_certificate_authority_data\u003dsettings.KUBECONFIG_CERTIFICATE_AUTHORITY_DATA)"},{"line_number":143,"context_line":"    return context"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_541f405a","line":142,"range":{"start_line":142,"start_character":19,"end_line":142,"end_character":104},"updated":"2019-04-19 06:43:30.000000000","message":"Cannot exceed 80 characters","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"2ded04e0fb4f7f17ae28a2767241d8df7df6a60e","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                   application_credential_secret\u003dapp_cred[\u0027secret\u0027],"},{"line_number":140,"context_line":"                   kubernetes_namespace\u003dapp_cred[\u0027namespace\u0027],"},{"line_number":141,"context_line":"                   kubernetes_url\u003dsettings.KUBECONFIG_KUBERNETES_URL,"},{"line_number":142,"context_line":"                   kubernetes_certificate_authority_data\u003dsettings.KUBECONFIG_CERTIFICATE_AUTHORITY_DATA)"},{"line_number":143,"context_line":"    return context"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_49ea8c75","line":142,"range":{"start_line":142,"start_character":19,"end_line":142,"end_character":104},"in_reply_to":"3fce034c_541f405a","updated":"2019-05-23 19:07:14.000000000","message":"Done","commit_id":"531fa87db8c4c20cae44c022207c812b13f61953"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8ce7c324012156af411ecf764c2e36aaeaf87b6d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                   application_credential_secret\u003dapp_cred[\u0027secret\u0027],"},{"line_number":145,"context_line":"                   kubernetes_namespace\u003dapp_cred[\u0027kubernetes_namespace\u0027],"},{"line_number":146,"context_line":"                   kubernetes_url\u003dsettings.KUBECONFIG_KUBERNETES_URL,"},{"line_number":147,"context_line":"                   kubernetes_certificate_authority_data\u003dsettings.KUBECONFIG_CERTIFICATE_AUTHORITY_DATA)"},{"line_number":148,"context_line":"    return context"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_b5801048","line":147,"range":{"start_line":147,"start_character":66,"end_line":147,"end_character":104},"updated":"2019-09-12 10:00:55.000000000","message":"Now it will fail during pep8 run","commit_id":"211fd2183d4faad557594d99e68258948a70b508"}],"openstack_dashboard/local/local_settings.py.example":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bc4b69ee6e2fabc023857079c1aa87656a1ce4ee","unresolved":false,"context_lines":[{"line_number":921,"context_line":"# Horizon can generate a \u0027kubeconfig\u0027 file from the application credentials"},{"line_number":922,"context_line":"# control panel which can be used for authenticating with a Kubernetes cluster."},{"line_number":923,"context_line":"# These settings control the kubeconfig parameters."},{"line_number":924,"context_line":"# KUBECONFIG_ENABLED \u003d False"},{"line_number":925,"context_line":"# KUBECONFIG_KUBERNETES_URL \u003d \"https://127.0.0.1:44333\""},{"line_number":926,"context_line":"# KUBECONFIG_CERTIFICATE_AUTHORITY_DATA \u003d \"\""},{"line_number":927,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"bfb3d3c7_e0fe8a69","line":924,"updated":"2019-05-29 10:00:51.000000000","message":"Please, add new configuration options to the documentation [1] \n\n[1] https://opendev.org/openstack/horizon/src/branch/master/doc/source/configuration/settings.rst","commit_id":"72dec72f49e7f80fdd17dad76a91e61201fa82a9"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"9f33c3e24cb03f99b42385378e93021e9cce3c0a","unresolved":false,"context_lines":[{"line_number":921,"context_line":"# Horizon can generate a \u0027kubeconfig\u0027 file from the application credentials"},{"line_number":922,"context_line":"# control panel which can be used for authenticating with a Kubernetes cluster."},{"line_number":923,"context_line":"# These settings control the kubeconfig parameters."},{"line_number":924,"context_line":"# KUBECONFIG_ENABLED \u003d False"},{"line_number":925,"context_line":"# KUBECONFIG_KUBERNETES_URL \u003d \"https://127.0.0.1:44333\""},{"line_number":926,"context_line":"# KUBECONFIG_CERTIFICATE_AUTHORITY_DATA \u003d \"\""},{"line_number":927,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"bfb3d3c7_867a46b7","line":924,"in_reply_to":"bfb3d3c7_e0fe8a69","updated":"2019-06-06 14:24:28.000000000","message":"Done","commit_id":"72dec72f49e7f80fdd17dad76a91e61201fa82a9"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"7989201cdde1f28672cc84da4708d9030165772d","unresolved":false,"context_lines":[{"line_number":617,"context_line":"# Once the password expires keystone will deny the access and users must"},{"line_number":618,"context_line":"# contact an admin to change their password."},{"line_number":619,"context_line":"#PASSWORD_EXPIRES_WARNING_THRESHOLD_DAYS \u003d 0"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"# Kubernetes clusters can use Keystone as an external identity provider."},{"line_number":622,"context_line":"# Horizon can generate a \u0027kubeconfig\u0027 file from the application credentials"},{"line_number":623,"context_line":"# control panel which can be used for authenticating with a Kubernetes cluster."},{"line_number":624,"context_line":"# These settings control the kubeconfig parameters."},{"line_number":625,"context_line":"# KUBECONFIG_ENABLED \u003d False"},{"line_number":626,"context_line":"# KUBECONFIG_KUBERNETES_URL \u003d \"https://127.0.0.1:44333\""},{"line_number":627,"context_line":"# KUBECONFIG_CERTIFICATE_AUTHORITY_DATA \u003d \"\""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"7faddb67_64763fa7","line":627,"range":{"start_line":620,"start_character":0,"end_line":627,"end_character":44},"updated":"2019-08-01 07:21:35.000000000","message":"Could you move this configuration to \u0027 openstack_dashboard/defaults.py\u0027?\nFor more information please refer [1]\nhttps://blueprints.launchpad.net/horizon/+spec/ini-based-configuration","commit_id":"8bea219ae553d33a4596b3f9b95fe8f0ca372b58"}],"releasenotes/notes/bp-kubernetes-config-gen-bcebcbd8f9fb9991.yaml":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"198e23078713743ae677074d8e15ebd6f0e3ded2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Kubernetes can be set up to use application credentials for user"},{"line_number":4,"context_line":"    authentication and authorization."},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    [`blueprint kubernetes-config-gen \u003chttps://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fb8cfa7_2802633e","line":4,"updated":"2019-06-11 13:49:05.000000000","message":"Could you avoid using prelude? This section is reserved for cycle highlights. \"New features\" section looks enough for this case.","commit_id":"bed21f83b55bf92451b77ec3dc4ebea6405b0886"},{"author":{"_account_id":30113,"name":"Claudio Pisa","email":"claudio.pisa@garr.it","username":"clauz"},"change_message_id":"63a988960d293b90f479c7b63492d62d140cf26c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Kubernetes can be set up to use application credentials for user"},{"line_number":4,"context_line":"    authentication and authorization."},{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    [`blueprint kubernetes-config-gen \u003chttps://blueprints.launchpad.net/horizon/+spec/kubernetes-config-gen\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7faddb67_4145d16f","line":4,"in_reply_to":"9fb8cfa7_2802633e","updated":"2019-07-04 09:39:16.000000000","message":"Done","commit_id":"bed21f83b55bf92451b77ec3dc4ebea6405b0886"}]}
