Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch glance store backend to swift #330

Closed
wants to merge 37 commits into from

Conversation

sulochan
Copy link
Collaborator

@sulochan sulochan commented Jun 22, 2024

This provides the options to move the glance store to swift. We change the default value to swift. Howerver, providing a override on file or on the helm command to --storage=pvc will deploy a glance with pvc backend.

These values should be overwritten in your region
specific secrets file to ensure no mistake.

@sulochan sulochan marked this pull request as draft June 22, 2024 04:33
@sulochan sulochan marked this pull request as ready for review June 24, 2024 13:30
This provides the options to move the glance store
to swift. We leave the default value to pvc so as
not to break existing deployments accidently. Howerver,
providing a override on the helm command to --storage=swift
will deploy a glance with swift backend.

These values should be overwritten in your region
specific secrets file to ensure no mistake.
…k. (#326)

* Add playbook to set uniform service types for all subnets of a network.

In particular, we want to set some service types for all subnets of PUBLICNET to
disallow instances from creating a server with a port on the PUBLICNET, so that
they have to use floating IPs, and the playbook run defaults to that network and
the service types to enforce that.

JIRA:OSPC-474

* Minor improvements to ansible/playbooks/network-service-types.yaml

JIRA:OSPC-474
@sulochan sulochan requested a review from cloudnull June 26, 2024 12:32
sowm9802 and others added 15 commits June 26, 2024 15:34
* Updated Skyline Image with correct keystoneAuth URL in downloaded openrc

* Corrected image reference in Skyline deployment YAML.
The kubernetes.core ansible collection needs to updated to 3.2.0 to utilize the enable_helm attribute of the kubernetes.core.kustomize.lookup which was added in 3.1.0

See:
- https://github.com/ansible-collections/kubernetes.core/blob/main/CHANGELOG.rst#v3-1-0
- ansible-collections/kubernetes.core#568

Ansible task example:

    - name: Deply mariadb operator
      kubernetes.core.k8s:
        definition: "{{ lookup('kubernetes.core.kustomize', binary_path='/usr/local/bin/kubectl', dir='/opt/genestack/kustomize/mariadb-operator', enable_helm=True) }}"
        namespace: mariadb-system
        apply: true
        server_side_apply:
          field_manager: ansible
          force_conflicts: true
        state: present

When the play is run with kubernetes .core 3.0.0

```
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-galaxy collection list| grep kub

kubernetes.core               3.0.0
kubernetes.core               2.4.0
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ export SSH_AUTH_SOCK=/tmp/ssh-XXXXEaumni/agent.109689
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-playbook ~/genestack_post_deploy.yaml --tag mariadb
[WARNING]:  * Failed to parse /etc/genestack/inventory/inventory.yaml.example with ini plugin: Invalid host pattern 'all:' supplied, ending in ':' is not allowed, this
character is reserved to provide a port.                                                                                                                                        [WARNING]: Unable to parse /etc/genestack/inventory/inventory.yaml.example as an inventory source                                                                               [WARNING]: Skipping 'apiVersion' as this is not a valid group definition                                                                                                        [WARNING]: Skipping 'kind' as this is not a valid group definition                                                                                                              [WARNING]: Skipping key (name) in group (metadata) as it is not a mapping, it is a <class 'ansible.parsing.yaml.objects.AnsibleUnicode'>                                        [WARNING]: Skipping unexpected key (annotations) in group (metadata), only "vars", "children" and "hosts" are valid
PLAY [Label stoage nodes] ******************************************************************************************************************************************************

PLAY [Label control plane nodes] ***********************************************************************************************************************************************

PLAY [Label nova compute nodes] ************************************************************************************************************************************************

PLAY [Label openstack network nodes] *******************************************************************************************************************************************
[WARNING]: Could not match supplied host pattern, ignoring: openstack_worker_nodes

PLAY [Label worker nodes] ******************************************************************************************************************************************************

PLAY [Remove taint from controllers] *******************************************************************************************************************************************

PLAY [Deploy k8s dashboard] ****************************************************************************************************************************************************

PLAY [Deploy prometheus] *******************************************************************************************************************************************************

PLAY [Make helm charts] ********************************************************************************************************************************************************

PLAY [Ceph internal] ***********************************************************************************************************************************************************

PLAY [OpenStack namespace] *****************************************************************************************************************************************************

PLAY [MariaDB] *****************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************
ok: [localhost]

TASK [Get secret if exists] ****************************************************************************************************************************************************
ok: [localhost]

TASK [Create secret if it does not exist] **************************************************************************************************************************************
skipping: [localhost]

TASK [Set cluster name in kustomize file] **************************************************************************************************************************************
ok: [localhost]
TASK [Deply mariadb operator] **************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "kustomize command failed with: error: trouble configuring builtin HelmChartInflationGenerator with config: `\nincludeCRDs: true\nname: m
ariadb-operator\nnamespace: mariadb-system\nreleaseName: mariadb-operator\nrepo: https://mariadb-operator.github.io/mariadb-operator\nvaluesInline:\n  affinity:\n    nodeAffini
ty:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: node-role.kubernetes.io/worker\n
  operator: In\n            values:\n            - worker\n  clusterName: cluster.local\n  metrics:\n    enabled: true\n  webhook:\n    affinity:\n      nodeAffinity:\n
requiredDuringSchedulingIgnoredDuringExecution:\n          nodeSelectorTerms:\n          - matchExpressions:\n            - key: node-role.kubernetes.io/worker\n              o
perator: In\n              values:\n              - worker\n    cert:\n      certManager:\n        enabled: true\nversion: 0.28.1\n`: must specify --enable-helm\n"}

PLAY RECAP *********************************************************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=1    skipped=1    rescued=0    ignored=0

(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$
```

When the play is run with kubernetes.core 3.2.0

```
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-galaxy collection list| grep kub
kubernetes.core               3.2.0
kubernetes.core               2.4.0
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-playbook ~/genestack_post_deploy.yaml --tag mariadb
[WARNING]:  * Failed to parse /etc/genestack/inventory/inventory.yaml.example with ini plugin: Invalid host pattern 'all:' supplied, ending in ':' is not allowed, this
character is reserved to provide a port.
[WARNING]: Unable to parse /etc/genestack/inventory/inventory.yaml.example as an inventory source
[WARNING]: Skipping 'apiVersion' as this is not a valid group definition
[WARNING]: Skipping 'kind' as this is not a valid group definition
[WARNING]: Skipping key (name) in group (metadata) as it is not a mapping, it is a <class 'ansible.parsing.yaml.objects.AnsibleUnicode'>
[WARNING]: Skipping unexpected key (annotations) in group (metadata), only "vars", "children" and "hosts" are valid

PLAY [Label stoage nodes] ******************************************************************************************************************************************************

PLAY [Label control plane nodes] ***********************************************************************************************************************************************

PLAY [Label nova compute nodes] ************************************************************************************************************************************************

PLAY [Label openstack network nodes] *******************************************************************************************************************************************
[WARNING]: Could not match supplied host pattern, ignoring: openstack_worker_nodes

PLAY [Label worker nodes] ******************************************************************************************************************************************************

PLAY [Remove taint from controllers] *******************************************************************************************************************************************

PLAY [Deploy k8s dashboard] ****************************************************************************************************************************************************

PLAY [Deploy prometheus] *******************************************************************************************************************************************************

PLAY [Make helm charts] ********************************************************************************************************************************************************

PLAY [Ceph internal] ***********************************************************************************************************************************************************

PLAY [OpenStack namespace] *****************************************************************************************************************************************************

PLAY [MariaDB] *****************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************
ok: [localhost]

TASK [Get secret if exists] ****************************************************************************************************************************************************
ok: [localhost]

TASK [Create secret if it does not exist] **************************************************************************************************************************************
skipping: [localhost]

TASK [Set cluster name in kustomize file] **************************************************************************************************************************************
ok: [localhost]

TASK [Deply mariadb operator] **************************************************************************************************************************************************
changed: [localhost]

TASK [Wait for mariadb operator webhook pod conditions] ************************************************************************************************************************
ok: [localhost] => (item=Ready)
ok: [localhost] => (item=ContainersReady)

PLAY RECAP *********************************************************************************************************************************************************************
localhost                  : ok=5    changed=1    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0

(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$
```

And the playbook completes without error.

Signed-off-by: Chris Blumentritt <[email protected]>
The topolvm storage provider was forcing the name to be 'local-path' in the 'general' overlay.
While this work, it is a broken example for the rest of our docs. This fix addresses the naming
so that it works like all the rest of our storage options.

Signed-off-by: cloudnull <[email protected]>
After the path rename and move to etc, we need to set the chart path for our example accordingly.
Before the rename we used a relative path, this change updates the kustomize file to use the full
known path.

Signed-off-by: cloudnull <[email protected]>
Simple fix to make the ovn setup doc use code blocks

Signed-off-by: cloudnull <[email protected]>
There is a dependabot alert on jinja2 version.
We need this updated to 3.1.4

Ref: https://github.com/rackerlabs/genestack/security/dependabot/8
cloudnull and others added 5 commits July 2, 2024 09:32
…k. (#326)

* Add playbook to set uniform service types for all subnets of a network.

In particular, we want to set some service types for all subnets of PUBLICNET to
disallow instances from creating a server with a port on the PUBLICNET, so that
they have to use floating IPs, and the playbook run defaults to that network and
the service types to enforce that.

JIRA:OSPC-474

* Minor improvements to ansible/playbooks/network-service-types.yaml

JIRA:OSPC-474
* Updated Skyline Image with correct keystoneAuth URL in downloaded openrc

* Corrected image reference in Skyline deployment YAML.
cblument and others added 15 commits July 2, 2024 09:32
The kubernetes.core ansible collection needs to updated to 3.2.0 to utilize the enable_helm attribute of the kubernetes.core.kustomize.lookup which was added in 3.1.0

See:
- https://github.com/ansible-collections/kubernetes.core/blob/main/CHANGELOG.rst#v3-1-0
- ansible-collections/kubernetes.core#568

Ansible task example:

    - name: Deply mariadb operator
      kubernetes.core.k8s:
        definition: "{{ lookup('kubernetes.core.kustomize', binary_path='/usr/local/bin/kubectl', dir='/opt/genestack/kustomize/mariadb-operator', enable_helm=True) }}"
        namespace: mariadb-system
        apply: true
        server_side_apply:
          field_manager: ansible
          force_conflicts: true
        state: present

When the play is run with kubernetes .core 3.0.0

```
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-galaxy collection list| grep kub

kubernetes.core               3.0.0
kubernetes.core               2.4.0
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ export SSH_AUTH_SOCK=/tmp/ssh-XXXXEaumni/agent.109689
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-playbook ~/genestack_post_deploy.yaml --tag mariadb
[WARNING]:  * Failed to parse /etc/genestack/inventory/inventory.yaml.example with ini plugin: Invalid host pattern 'all:' supplied, ending in ':' is not allowed, this
character is reserved to provide a port.                                                                                                                                        [WARNING]: Unable to parse /etc/genestack/inventory/inventory.yaml.example as an inventory source                                                                               [WARNING]: Skipping 'apiVersion' as this is not a valid group definition                                                                                                        [WARNING]: Skipping 'kind' as this is not a valid group definition                                                                                                              [WARNING]: Skipping key (name) in group (metadata) as it is not a mapping, it is a <class 'ansible.parsing.yaml.objects.AnsibleUnicode'>                                        [WARNING]: Skipping unexpected key (annotations) in group (metadata), only "vars", "children" and "hosts" are valid
PLAY [Label stoage nodes] ******************************************************************************************************************************************************

PLAY [Label control plane nodes] ***********************************************************************************************************************************************

PLAY [Label nova compute nodes] ************************************************************************************************************************************************

PLAY [Label openstack network nodes] *******************************************************************************************************************************************
[WARNING]: Could not match supplied host pattern, ignoring: openstack_worker_nodes

PLAY [Label worker nodes] ******************************************************************************************************************************************************

PLAY [Remove taint from controllers] *******************************************************************************************************************************************

PLAY [Deploy k8s dashboard] ****************************************************************************************************************************************************

PLAY [Deploy prometheus] *******************************************************************************************************************************************************

PLAY [Make helm charts] ********************************************************************************************************************************************************

PLAY [Ceph internal] ***********************************************************************************************************************************************************

PLAY [OpenStack namespace] *****************************************************************************************************************************************************

PLAY [MariaDB] *****************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************
ok: [localhost]

TASK [Get secret if exists] ****************************************************************************************************************************************************
ok: [localhost]

TASK [Create secret if it does not exist] **************************************************************************************************************************************
skipping: [localhost]

TASK [Set cluster name in kustomize file] **************************************************************************************************************************************
ok: [localhost]
TASK [Deply mariadb operator] **************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "kustomize command failed with: error: trouble configuring builtin HelmChartInflationGenerator with config: `\nincludeCRDs: true\nname: m
ariadb-operator\nnamespace: mariadb-system\nreleaseName: mariadb-operator\nrepo: https://mariadb-operator.github.io/mariadb-operator\nvaluesInline:\n  affinity:\n    nodeAffini
ty:\n      requiredDuringSchedulingIgnoredDuringExecution:\n        nodeSelectorTerms:\n        - matchExpressions:\n          - key: node-role.kubernetes.io/worker\n
  operator: In\n            values:\n            - worker\n  clusterName: cluster.local\n  metrics:\n    enabled: true\n  webhook:\n    affinity:\n      nodeAffinity:\n
requiredDuringSchedulingIgnoredDuringExecution:\n          nodeSelectorTerms:\n          - matchExpressions:\n            - key: node-role.kubernetes.io/worker\n              o
perator: In\n              values:\n              - worker\n    cert:\n      certManager:\n        enabled: true\nversion: 0.28.1\n`: must specify --enable-helm\n"}

PLAY RECAP *********************************************************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=1    skipped=1    rescued=0    ignored=0

(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$
```

When the play is run with kubernetes.core 3.2.0

```
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-galaxy collection list| grep kub
kubernetes.core               3.2.0
kubernetes.core               2.4.0
(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$ ansible-playbook ~/genestack_post_deploy.yaml --tag mariadb
[WARNING]:  * Failed to parse /etc/genestack/inventory/inventory.yaml.example with ini plugin: Invalid host pattern 'all:' supplied, ending in ':' is not allowed, this
character is reserved to provide a port.
[WARNING]: Unable to parse /etc/genestack/inventory/inventory.yaml.example as an inventory source
[WARNING]: Skipping 'apiVersion' as this is not a valid group definition
[WARNING]: Skipping 'kind' as this is not a valid group definition
[WARNING]: Skipping key (name) in group (metadata) as it is not a mapping, it is a <class 'ansible.parsing.yaml.objects.AnsibleUnicode'>
[WARNING]: Skipping unexpected key (annotations) in group (metadata), only "vars", "children" and "hosts" are valid

PLAY [Label stoage nodes] ******************************************************************************************************************************************************

PLAY [Label control plane nodes] ***********************************************************************************************************************************************

PLAY [Label nova compute nodes] ************************************************************************************************************************************************

PLAY [Label openstack network nodes] *******************************************************************************************************************************************
[WARNING]: Could not match supplied host pattern, ignoring: openstack_worker_nodes

PLAY [Label worker nodes] ******************************************************************************************************************************************************

PLAY [Remove taint from controllers] *******************************************************************************************************************************************

PLAY [Deploy k8s dashboard] ****************************************************************************************************************************************************

PLAY [Deploy prometheus] *******************************************************************************************************************************************************

PLAY [Make helm charts] ********************************************************************************************************************************************************

PLAY [Ceph internal] ***********************************************************************************************************************************************************

PLAY [OpenStack namespace] *****************************************************************************************************************************************************

PLAY [MariaDB] *****************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************
ok: [localhost]

TASK [Get secret if exists] ****************************************************************************************************************************************************
ok: [localhost]

TASK [Create secret if it does not exist] **************************************************************************************************************************************
skipping: [localhost]

TASK [Set cluster name in kustomize file] **************************************************************************************************************************************
ok: [localhost]

TASK [Deply mariadb operator] **************************************************************************************************************************************************
changed: [localhost]

TASK [Wait for mariadb operator webhook pod conditions] ************************************************************************************************************************
ok: [localhost] => (item=Ready)
ok: [localhost] => (item=ContainersReady)

PLAY RECAP *********************************************************************************************************************************************************************
localhost                  : ok=5    changed=1    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0

(genestack) ubuntu@openstack-flex-launcher-cluster-local:/opt/genestack$
```

And the playbook completes without error.

Signed-off-by: Chris Blumentritt <[email protected]>
The topolvm storage provider was forcing the name to be 'local-path' in the 'general' overlay.
While this work, it is a broken example for the rest of our docs. This fix addresses the naming
so that it works like all the rest of our storage options.

Signed-off-by: cloudnull <[email protected]>
After the path rename and move to etc, we need to set the chart path for our example accordingly.
Before the rename we used a relative path, this change updates the kustomize file to use the full
known path.

Signed-off-by: cloudnull <[email protected]>
Simple fix to make the ovn setup doc use code blocks

Signed-off-by: cloudnull <[email protected]>
There is a dependabot alert on jinja2 version.
We need this updated to 3.1.4

Ref: https://github.com/rackerlabs/genestack/security/dependabot/8
@sulochan sulochan closed this Jul 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants