Add tenant ceph to global/site manifests

- Add tenant ceph manifests in globals
 - Add reference overrides for site in airship-seaworthy
 - Re-purpose 4th control as an additional compute to total 3.
   This allows to maintain proper ceph replication
 - Update disk layout to use partitions for journals

Change-Id: I0edf35bd56e4e5253f78c9074d88369283b6fac3
This commit is contained in:
Kaspars Skels 2018-10-12 13:11:06 -05:00
parent a292a70695
commit 44dafaa96e
33 changed files with 1240 additions and 132 deletions

View File

@ -98,6 +98,10 @@ data:
- ceph-osd=enabled - ceph-osd=enabled
- ceph-rgw=enabled - ceph-rgw=enabled
- ceph-mgr=enabled - ceph-mgr=enabled
- tenant-ceph-control-plane=enabled
- tenant-ceph-mon=enabled
- tenant-ceph-rgw=enabled
- tenant-ceph-mgr=enabled
- kube-dns=enabled - kube-dns=enabled
- kube-ingress=enabled - kube-ingress=enabled
- kubernetes-apiserver=enabled - kubernetes-apiserver=enabled

View File

@ -75,6 +75,10 @@ data:
ceph-osd: enabled ceph-osd: enabled
ceph-mds: enabled ceph-mds: enabled
ceph-rgw: enabled ceph-rgw: enabled
tenant-ceph-control-plane: enabled
tenant-ceph-mon: enabled
tenant-ceph-rgw: enabled
tenant-ceph-mgr: enabled
ucp-maas: enabled ucp-maas: enabled
kube-dns: enabled kube-dns: enabled
kubernetes-apiserver: enabled kubernetes-apiserver: enabled

View File

@ -52,6 +52,7 @@ data:
metadata: metadata:
owner_data: owner_data:
openstack-nova-compute: enabled openstack-nova-compute: enabled
tenant-ceph-osd: enabled
openvswitch: enabled openvswitch: enabled
contrail-vrouter: kernel contrail-vrouter: kernel
openstack-libvirt: kernel openstack-libvirt: kernel

View File

@ -571,6 +571,87 @@ data:
type: string type: string
reference: reference:
type: string type: string
tenant-ceph-mon:
type: object
properties:
fluentbit:
type: string
ceph_bootstrap:
type: string
dep_check:
type: string
ceph_mon:
type: string
ceph_config_helper:
type: string
ceph_mon_check:
type: string
image_repo_sync:
type: string
tenant-ceph-osd:
type: object
properties:
fluentbit:
type: string
ceph_bootstrap:
type: string
dep_check:
type: string
ceph_osd:
type: string
image_repo_sync:
type: string
tenant-ceph-client:
type: object
properties:
ceph_bootstrap:
type: string
dep_check:
type: string
ceph_mds:
type: string
ceph_mgr:
type: string
ceph_config_helper:
type: string
ceph_rbd_pool:
type: string
image_repo_sync:
type: string
tenant-ceph-provisioners:
type: object
properties:
ceph_bootstrap:
type: string
ceph_cephfs_provisioner:
type: string
ceph_config_helper:
type: string
ceph_rbd_provisioner:
type: string
dep_check:
type: string
image_repo_sync:
type: string
tenant-ceph-rgw:
type: object
properties:
ceph_config_helper:
type: string
ceph_rgw:
type: string
dep_check:
type: string
image_repo_sync:
type: string
rgw_s3_admin:
type: string
ks_endpoints:
type: string
ks_service:
type: string
ks_user:
type: string
deckhand: deckhand:
type: object type: object
properties: properties:

View File

@ -213,6 +213,9 @@ data:
volume: volume:
node_selector_key: openstack-control-plane node_selector_key: openstack-control-plane
node_selector_value: enabled node_selector_value: enabled
ceph_client:
configmap: tenant-ceph-etc
user_secret_name: pvc-tceph-client-key
conf: conf:
logging: logging:
loggers: loggers:

View File

@ -44,5 +44,8 @@ data:
libvirt: libvirt:
node_selector_key: openstack-libvirt node_selector_key: openstack-libvirt
node_selector_value: kernel node_selector_value: kernel
ceph_client:
configmap: tenant-ceph-etc
user_secret_name: pvc-tceph-client-key
dependencies: dependencies:
- osh-helm-toolkit - osh-helm-toolkit

View File

@ -329,6 +329,9 @@ data:
consoleauth: 1 consoleauth: 1
scheduler: 1 scheduler: 1
novncproxy: 1 novncproxy: 1
ceph_client:
configmap: tenant-ceph-etc
user_secret_name: pvc-tceph-client-key
conf: conf:
logging: logging:
loggers: loggers:

View File

@ -220,6 +220,9 @@ data:
registry: registry:
node_selector_key: openstack-control-plane node_selector_key: openstack-control-plane
node_selector_value: enabled node_selector_value: enabled
ceph_client:
configmap: tenant-ceph-etc
user_secret_name: pvc-tceph-client-key
conf: conf:
logging: logging:
loggers: loggers:

View File

@ -10,4 +10,5 @@ metadata:
data: data:
description: Deploy Radosgw description: Deploy Radosgw
chart_group: chart_group:
- radosgw - tenant-ceph-rgw
...

View File

@ -2,7 +2,7 @@
schema: armada/Chart/v1 schema: armada/Chart/v1
metadata: metadata:
schema: metadata/Document/v1 schema: metadata/Document/v1
name: radosgw name: tenant-ceph-rgw
layeringDefinition: layeringDefinition:
abstract: false abstract: false
layer: global layer: global
@ -12,7 +12,7 @@ metadata:
- src: - src:
schema: pegleg/SoftwareVersions/v1 schema: pegleg/SoftwareVersions/v1
name: software-versions name: software-versions
path: .charts.ucp.ceph-rgw path: .charts.ucp.tenant-ceph-rgw
dest: dest:
path: .source path: .source
@ -20,7 +20,7 @@ metadata:
- src: - src:
schema: pegleg/SoftwareVersions/v1 schema: pegleg/SoftwareVersions/v1
name: software-versions name: software-versions
path: .images.ceph.ceph-rgw path: .images.ceph.tenant-ceph-rgw
dest: dest:
path: .values.images.tags path: .values.images.tags
@ -54,13 +54,13 @@ metadata:
- src: - src:
schema: pegleg/EndpointCatalogue/v1 schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints name: ucp_endpoints
path: .ceph.ceph_mon path: .ceph.tenant_ceph_mon
dest: dest:
path: .values.endpoints.ceph_mon path: .values.endpoints.ceph_mon
- src: - src:
schema: pegleg/EndpointCatalogue/v1 schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints name: ucp_endpoints
path: .ceph.ceph_mgr path: .ceph.tenant_ceph_mgr
dest: dest:
path: .values.endpoints.ceph_mgr path: .values.endpoints.ceph_mgr
@ -93,13 +93,13 @@ metadata:
path: . path: .
data: data:
chart_name: radosgw chart_name: tenant-ceph-rgw
release: radosgw release: tenant-ceph-rgw
namespace: openstack namespace: openstack
wait: wait:
timeout: 900 timeout: 900
labels: labels:
release_group: airship-radosgw release_group: airship-tenant-ceph-rgw
install: install:
no_hooks: false no_hooks: false
upgrade: upgrade:
@ -108,34 +108,44 @@ data:
delete: delete:
- type: job - type: job
labels: labels:
release_group: airship-radosgw release_group: airship-tenant-ceph-rgw
values: values:
labels: labels:
job: job:
node_selector_key: openstack-control-plane node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
provisioner:
node_selector_key: openstack-control-plane
node_selector_value: enabled
mds:
node_selector_key: ceph-mds
node_selector_value: enabled node_selector_value: enabled
rgw: rgw:
node_selector_key: ceph-rgw node_selector_key: tenant-ceph-rgw
node_selector_value: enabled
mgr:
node_selector_key: ceph-mgr
node_selector_value: enabled node_selector_value: enabled
endpoints:
identity:
namespace: openstack
object_store:
namespace: openstack
ceph_mon:
namespace: tenant-ceph
deployment: deployment:
ceph: false ceph: true
client_secrets: false
rbd_provisioner: false
cephfs_provisioner: false
rgw_keystone_user_and_endpoints: true rgw_keystone_user_and_endpoints: true
bootstrap: bootstrap:
enabled: false enabled: false
pod:
replicas:
rgw: 2
conf: conf:
rgw_ks: rgw_ks:
enabled: true enabled: true
config:
#NOTE (portdirect): See http://tracker.ceph.com/issues/21226
rgw_keystone_token_cache_size: '0'
ceph_client: ceph_client:
configmap: ceph-etc configmap: tenant-ceph-etc
secrets:
keyrings:
admin: pvc-tceph-client-key
dependencies: dependencies:
- ceph-htk - tenant-ceph-htk
... ...

View File

@ -0,0 +1,254 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-client-global
layeringDefinition:
abstract: true
layer: global
storagePolicy: cleartext
labels:
name: tenant-ceph-client-global
substitutions:
# Chart source
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.ucp.tenant-ceph-client
dest:
path: .source
# Images
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ceph.tenant-ceph-client
dest:
path: .values.images.tags
# IP addresses
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.public_cidr
dest:
path: .values.network.public
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.cluster_cidr
dest:
path: .values.network.cluster
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.identity
dest:
path: .values.endpoints.identity
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.object_store
dest:
path: .values.endpoints.object_store
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mon
dest:
path: .values.endpoints.ceph_mon
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mgr
dest:
path: .values.endpoints.ceph_mgr
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.keystone.admin
dest:
path: .values.endpoints.identity.auth.admin
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.swift.keystone
dest:
path: .values.endpoints.identity.auth.swift
# Secrets
- dest:
path: .values.endpoints.identity.auth.admin.password
src:
schema: deckhand/Passphrase/v1
name: osh_keystone_admin_password
path: .
- dest:
path: .values.endpoints.identity.auth.swift.password
src:
schema: deckhand/Passphrase/v1
name: ceph_swift_keystone_password
path: .
- dest:
path: .values.conf.ceph.global.fsid
src:
schema: deckhand/Passphrase/v1
name: tenant_ceph_fsid
path: .
data:
chart_name: tenant-ceph-client
release: tenant-ceph-client
namespace: tenant-ceph
protected:
continue_processing: true
wait:
timeout: 900
labels:
release_group: airship-tenant-ceph-client
install:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: job
labels:
release_group: airship-tenant-ceph-client
values:
labels:
job:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
provisioner:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
mds:
node_selector_key: tenant-ceph-mds
node_selector_value: enabled
rgw:
node_selector_key: tenant-ceph-rgw
node_selector_value: enabled
mgr:
node_selector_key: tenant-ceph-mgr
node_selector_value: enabled
endpoints:
identity:
namespace: openstack
object_store:
namespace: openstack
ceph_mon:
namespace: tenant-ceph
ceph_mgr:
namespace: tenant-ceph
monitoring:
ceph_mgr:
port: 9284
deployment:
ceph: true
bootstrap:
enabled: true
manifests:
deployment_mds: false
conf:
features:
mds: false
pool:
spec:
# RBD pool
- name: rbd
application: rbd
replication: 3
percent_total_data: 10
# Cinder volumes pool
- name: cinder.volumes
application: cinder-volume
replication: 3
percent_total_data: 40
# RadosGW pools
- name: .rgw.root
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.control
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.data.root
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.gc
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.log
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.intent-log
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.meta
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.usage
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.users.keys
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.users.email
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.users.swift
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.users.uid
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.buckets.extra
application: rgw
replication: 3
percent_total_data: 0.1
- name: default.rgw.buckets.index
application: rgw
replication: 3
percent_total_data: 3
- name: default.rgw.buckets.data
application: rgw
replication: 3
percent_total_data: 30
# NOTE(alanmeadowS) spport 4.x 16.04 kernels (non-HWE)
crush:
tunables: 'hammer'
# NOTE(alanmeadows): This is required ATM for bootstrapping a Ceph
# cluster with only one OSD. Depending on OSD targeting & site
# configuration this can be changed.
target:
osd: 1
pg_per_osd: 100
default:
# NOTE(alanmeadows): This is required ATM for bootstrapping a Ceph
# cluster with only one OSD. Depending on OSD targeting & site
# configuration this can be changed.
crush_rule: replicated_rule
ceph:
global:
# NOTE(mb874d): This is required ATM for bootstrapping a Ceph
# cluster with only one OSD. Depending on OSD targeting & site
# configuration this can be changed.
osd_pool_default_size: 1
dependencies:
- tenant-ceph-htk
...

View File

@ -0,0 +1,147 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-config
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
# Chart source
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.ucp.tenant-ceph-provisioners
dest:
path: .source
# Images
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ceph.tenant-ceph-provisioners
dest:
path: .values.images.tags
# IP addresses
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.public_cidr
dest:
path: .values.network.public
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.cluster_cidr
dest:
path: .values.network.cluster
# Endpoints
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.identity
dest:
path: .values.endpoints.identity
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.object_store
dest:
path: .values.endpoints.object_store
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mon
dest:
path: .values.endpoints.ceph_mon
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mgr
dest:
path: .values.endpoints.ceph_mgr
# Credentials
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.keystone.admin
dest:
path: .values.endpoints.identity.auth.admin
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.swift.keystone
dest:
path: .values.endpoints.identity.auth.swift
# Secrets
- dest:
path: .values.endpoints.identity.auth.admin.password
src:
schema: deckhand/Passphrase/v1
name: osh_keystone_admin_password
path: .
- dest:
path: .values.endpoints.identity.auth.swift.password
src:
schema: deckhand/Passphrase/v1
name: ceph_swift_keystone_password
path: .
data:
chart_name: tenant-ceph-config
release: tenant-ceph-config
namespace: openstack
wait:
timeout: 900
labels:
release_group: airship-tenant-ceph-config
install:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: job
labels:
release_group: airship-tenant-ceph-config
values:
labels:
job:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
provisioner:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
mds:
node_selector_key: tenant-ceph-mds
node_selector_value: enabled
rgw:
node_selector_key: tenant-ceph-rgw
node_selector_value: enabled
mgr:
node_selector_key: tenant-ceph-mgr
node_selector_value: enabled
deployment:
ceph: false
client_secrets: true
rbd_provisioner: false
cephfs_provisioner: false
rgw_keystone_user_and_endpoints: false
bootstrap:
enabled: false
conf:
rgw_ks:
enabled: true
storageclass:
rbd:
ceph_configmap_name: tenant-ceph-etc
user_secret_name: pvc-tceph-client-key
admin_secret_namespace: tenant-ceph
dependencies:
- tenant-ceph-htk
...

View File

@ -0,0 +1,23 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-htk
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.ucp.tenant-ceph-htk
dest:
path: .source
data:
chart_name: tenant-ceph-htk
release: tenant-ceph-htk
namespace: tenant-ceph-htk
values: {}
dependencies: []
...

View File

@ -0,0 +1,64 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-ingress
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
# Chart source
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.ucp.ingress
dest:
path: .source
# Images
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ucp.ingress
dest:
path: .values.images.tags
data:
chart_name: tenant-ceph-ingress
release: tenant-ceph-ingress
namespace: tenant-ceph
wait:
timeout: 300
labels:
release_group: airship-tenant-ceph-ingress
install:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: job
labels:
release_group: airship-tenant-ceph-ingress
values:
conf:
ingress:
proxy-body-size: 20m
labels:
server:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
error_server:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
pod:
replicas:
ingress: 2
error_page: 2
network:
ingress:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 20m
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
dependencies:
- ucp-ingress-htk
...

View File

@ -0,0 +1,162 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-mon
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
labels:
name: tenant-ceph-mon
substitutions:
# Chart source
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.ucp.tenant-ceph-mon
dest:
path: .source
# Images
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ceph.tenant-ceph-mon
dest:
path: .values.images.tags
# IP addresses
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.public_cidr
dest:
path: .values.network.public
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.cluster_cidr
dest:
path: .values.network.cluster
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.identity
dest:
path: .values.endpoints.identity
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.object_store
dest:
path: .values.endpoints.object_store
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mon
dest:
path: .values.endpoints.ceph_mon
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_infra_endpoints
path: .osh_infra.fluentd
dest:
path: .values.endpoints.fluentd
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mgr
dest:
path: .values.endpoints.ceph_mgr
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.keystone.admin
dest:
path: .values.endpoints.identity.auth.admin
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.swift.keystone
dest:
path: .values.endpoints.identity.auth.swift
# Secrets
- dest:
path: .values.endpoints.identity.auth.admin.password
src:
schema: deckhand/Passphrase/v1
name: osh_keystone_admin_password
path: .
- dest:
path: .values.endpoints.identity.auth.swift.password
src:
schema: deckhand/Passphrase/v1
name: ceph_swift_keystone_password
path: .
- dest:
path: .values.conf.ceph.global.fsid
src:
schema: deckhand/Passphrase/v1
name: tenant_ceph_fsid
path: .
data:
chart_name: tenant-ceph-mon
release: tenant-ceph-mon
namespace: tenant-ceph
protected:
continue_processing: true
wait:
timeout: 1800
labels:
release_group: airship-tenant-ceph-mon
install:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: job
labels:
release_group: airship-tenant-ceph-mon
values:
logging:
fluentd: true
labels:
job:
node_selector_key: tenant-ceph-control-plane
node_selector_value: enabled
mon:
node_selector_key: tenant-ceph-mon
node_selector_value: enabled
endpoints:
identity:
namespace: openstack
object_store:
namespace: openstack
ceph_mon:
namespace: tenant-ceph
ceph_mgr:
namespace: tenant-ceph
fluentd:
namespace: osh-infra
monitoring:
ceph_mgr:
port: 9284
conf:
storage:
mon:
directory: /var/lib/openstack-helm/tenant-ceph/mon
storageclass:
rbd:
admin_secret_namespace: tenant-ceph
deployment:
ceph: true
storage_secrets: true
bootstrap:
enabled: true
dependencies:
- tenant-ceph-htk
...

View File

@ -0,0 +1,164 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-osd-global
layeringDefinition:
abstract: true
layer: global
storagePolicy: cleartext
labels:
name: tenant-ceph-osd-global
substitutions:
# Chart source
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.ucp.tenant-ceph-osd
dest:
path: .source
# Images
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ceph.tenant-ceph-osd
dest:
path: .values.images.tags
# IP addresses
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.public_cidr
dest:
path: .values.network.public
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .storage.ceph.cluster_cidr
dest:
path: .values.network.cluster
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.identity
dest:
path: .values.endpoints.identity
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.object_store
dest:
path: .values.endpoints.object_store
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mon
dest:
path: .values.endpoints.ceph_mon
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_infra_endpoints
path: .osh_infra.fluentd
dest:
path: .values.endpoints.fluentd
- src:
schema: pegleg/EndpointCatalogue/v1
name: ucp_endpoints
path: .ceph.tenant_ceph_mgr
dest:
path: .values.endpoints.ceph_mgr
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.keystone.admin
dest:
path: .values.endpoints.identity.auth.admin
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.swift.keystone
dest:
path: .values.endpoints.identity.auth.swift
# Secrets
- dest:
path: .values.endpoints.identity.auth.admin.password
src:
schema: deckhand/Passphrase/v1
name: osh_keystone_admin_password
path: .
- dest:
path: .values.endpoints.identity.auth.swift.password
src:
schema: deckhand/Passphrase/v1
name: ceph_swift_keystone_password
path: .
- dest:
path: .values.conf.ceph.global.fsid
src:
schema: deckhand/Passphrase/v1
name: tenant_ceph_fsid
path: .
data:
chart_name: tenant-ceph-osd
release: tenant-ceph-osd
namespace: tenant-ceph
protected:
continue_processing: true
wait:
timeout: 900
labels:
release_group: airship-tenant-ceph-osd
install:
no_hooks: false
upgrade:
no_hooks: false
values:
logging:
fluentd: true
labels:
osd:
node_selector_key: tenant-ceph-osd
node_selector_value: enabled
endpoints:
identity:
namespace: openstack
object_store:
namespace: openstack
ceph_mon:
namespace: tenant-ceph
ceph_mgr:
namespace: tenant-ceph
fluentd:
namespace: osh-infra
monitoring:
ceph_mgr:
port: 9284
bootstrap:
enabled: true
conf:
storage:
mon:
directory: /var/lib/openstack-helm/tenant-ceph/mon
osd:
- data:
type: directory
location: /var/lib/openstack-helm/tenant-ceph/osd/osd-one
journal:
type: directory
location: /var/lib/openstack-helm/tenant-ceph/osd/journal-one
osd:
# NOTE(alanmeadows): This is required ATM for bootstrapping a Ceph
# cluster with only one OSD. Depending on OSD targeting & site
# configuration this can be changed.
osd_crush_chooseleaf_type: 0
ceph:
osd:
osd_op_num_threads_per_hdd: 2
osd_op_num_threads_per_ssd: 4
dependencies:
- tenant-ceph-htk
...

View File

@ -0,0 +1,19 @@
---
schema: armada/ChartGroup/v1
metadata:
schema: metadata/Document/v1
name: openstack-tenant-ceph
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
data:
description: Ceph Storage
sequenced: true
chart_group:
- tenant-ceph-ingress
- tenant-ceph-mon
- tenant-ceph-osd
- tenant-ceph-client
- tenant-ceph-config
...

View File

@ -256,6 +256,36 @@ data:
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: helm-toolkit subpath: helm-toolkit
type: git type: git
tenant-ceph-client:
location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: ceph-client
type: git
tenant-ceph-htk:
location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: helm-toolkit
type: git
tenant-ceph-mon:
location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: ceph-mon
type: git
tenant-ceph-osd:
location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: ceph-osd
type: git
tenant-ceph-provisioners:
location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: ceph-provisioners
type: git
tenant-ceph-rgw:
location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
subpath: ceph-rgw
type: git
ceph-client: ceph-client:
location: https://git.openstack.org/openstack/openstack-helm-infra location: https://git.openstack.org/openstack/openstack-helm-infra
reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c reference: 922d7d3d26b15d1d25e40ba1528337002ae15b0c
@ -430,44 +460,16 @@ data:
etcd: quay.io/coreos/etcd:v3.2.14 etcd: quay.io/coreos/etcd:v3.2.14
etcdctl: quay.io/coreos/etcd:v3.2.14 etcdctl: quay.io/coreos/etcd:v3.2.14
ceph: ceph:
ceph-client: ceph-client: {}
ceph_bootstrap: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04 ceph-mon: {}
ceph_config_helper: docker.io/port/ceph-config-helper:v1.10.2 ceph-osd: {}
ceph_mds: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04 ceph-provisioners: {}
ceph_mgr: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04 ceph-rgw: {}
ceph_rbd_pool: docker.io/port/ceph-config-helper:v1.10.2 tenant-ceph-client: {}
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1 tenant-ceph-mon: {}
image_repo_sync: docker.io/docker:17.07.0 tenant-ceph-osd: {}
ceph-mon: tenant-ceph-provisioners: {}
ceph_bootstrap: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04 tenant-ceph-rgw: {}
ceph_config_helper: docker.io/port/ceph-config-helper:v1.10.2
ceph_mon: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04
ceph_mon_check: docker.io/port/ceph-config-helper:v1.10.2
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
fluentbit: docker.io/fluent/fluent-bit:0.12.14
image_repo_sync: docker.io/docker:17.07.0
ceph-osd:
ceph_bootstrap: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04
ceph_osd: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
fluentbit: docker.io/fluent/fluent-bit:0.12.14
image_repo_sync: docker.io/docker:17.07.0
ceph-provisioners:
ceph_bootstrap: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04
ceph_cephfs_provisioner: quay.io/external_storage/cephfs-provisioner:v0.1.1
ceph_config_helper: docker.io/port/ceph-config-helper:v1.10.2
ceph_rbd_provisioner: quay.io/external_storage/rbd-provisioner:v0.1.1
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
image_repo_sync: docker.io/docker:17.07.0
ceph-rgw:
ceph_config_helper: docker.io/port/ceph-config-helper:v1.10.2
ceph_rgw: docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
image_repo_sync: docker.io/docker:17.07.0
ks_endpoints: docker.io/openstackhelm/heat:ocata
ks_service: docker.io/openstackhelm/heat:ocata
ks_user: docker.io/openstackhelm/heat:ocata
rgw_s3_admin: docker.io/port/ceph-config-helper:v1.10.2
kubernetes: kubernetes:
apiserver: apiserver:
anchor: gcr.io/google-containers/hyperkube-amd64:v1.10.2 anchor: gcr.io/google-containers/hyperkube-amd64:v1.10.2

View File

@ -37,6 +37,7 @@ data:
- osh-infra-dashboards - osh-infra-dashboards
- openstack-ingress-controller - openstack-ingress-controller
- openstack-ceph-config - openstack-ceph-config
- openstack-tenant-ceph
- openstack-mariadb - openstack-mariadb
- openstack-memcached - openstack-memcached
- openstack-compute-services - openstack-compute-services

View File

@ -175,13 +175,13 @@ data:
address: 10.23.22.14 address: 10.23.22.14
# NEWSITE-CHANGEME: The next node's host profile # NEWSITE-CHANGEME: The next node's host profile
# This is the third "primary" control plane profile after genesis # This is the third "primary" control plane profile after genesis
host_profile: cp_r740-secondary host_profile: dp_r720
metadata: metadata:
# NEWSITE-CHANGEME: The next node's rack designation # NEWSITE-CHANGEME: The next node's rack designation
rack: cab23 rack: cab23
# NEWSITE-CHANGEME: The next node's role desigatnion # NEWSITE-CHANGEME: The next node's role desigatnion
tags: tags:
- 'masters' - 'workers'
... ...
--- ---
schema: 'drydock/BaremetalNode/v1' schema: 'drydock/BaremetalNode/v1'

View File

@ -36,6 +36,6 @@ data:
get_releases_timeout: 300 get_releases_timeout: 300
get_status_timeout: 300 get_status_timeout: 300
manifest: 'full-site' manifest: 'full-site'
post_apply_timeout: 2700 post_apply_timeout: 7200
validate_design_timeout: 600 validate_design_timeout: 600
... ...

View File

@ -27,6 +27,10 @@ data:
- ceph-rgw=enabled - ceph-rgw=enabled
- ceph-mgr=enabled - ceph-mgr=enabled
- ceph-bootstrap=enabled - ceph-bootstrap=enabled
- tenant-ceph-control-plane=enabled
- tenant-ceph-mon=enabled
- tenant-ceph-rgw=enabled
- tenant-ceph-mgr=enabled
- kube-dns=enabled - kube-dns=enabled
- kube-ingress=enabled - kube-ingress=enabled
- kubernetes-apiserver=enabled - kubernetes-apiserver=enabled

View File

@ -59,13 +59,18 @@ data:
dev_type: 'PERC H710P' dev_type: 'PERC H710P'
bus_type: 'scsi' bus_type: 'scsi'
# /dev/sdb # /dev/sdb
cephjournal: cephjournal1:
address: '0:2.1.0' address: '0:2.1.0'
dev_type: 'PERC H710P' dev_type: 'PERC H710P'
bus_type: 'scsi' bus_type: 'scsi'
# /dev/sdc # /dev/sdc
ephemeral: cephjournal2:
address: '0:2.2.0' address: '0:2.2.0'
dev_type: 'PERC H710P' dev_type: 'PERC H710P'
bus_type: 'scsi' bus_type: 'scsi'
# /dev/sdc
ephemeral:
address: '0:2.3.0'
dev_type: 'PERC H710P'
bus_type: 'scsi'
... ...

View File

@ -75,14 +75,27 @@ data:
mountpoint: '/var' mountpoint: '/var'
fstype: 'ext4' fstype: 'ext4'
mount_options: 'defaults' mount_options: 'defaults'
cephjournal:
cephjournal1:
partitions: partitions:
- name: 'cephj' - name: 'ceph-j1'
size: '100g' size: '10g'
filesystem: - name: 'ceph-j2'
mountpoint: '/var/lib/ceph/cp' size: '10g'
fstype: 'xfs' - name: 'ceph-j3'
mount_options: 'defaults' size: '10g'
- name: 'ceph-j4'
size: '10g'
cephjournal2:
partitions:
- name: 'ceph-j5'
size: '10g'
- name: 'ceph-j6'
size: '10g'
- name: 'ceph-j7'
size: '10g'
- name: 'ceph-j8'
size: '10g'
platform: platform:
kernel: 'hwe-16.04' kernel: 'hwe-16.04'
@ -168,14 +181,27 @@ data:
mountpoint: '/var' mountpoint: '/var'
fstype: 'ext4' fstype: 'ext4'
mount_options: 'defaults' mount_options: 'defaults'
cephjournal:
cephjournal1:
partitions: partitions:
- name: 'cephj' - name: 'ceph-j1'
size: '100g' size: '10g'
filesystem: - name: 'ceph-j2'
mountpoint: '/var/lib/ceph/cp' size: '10g'
fstype: 'xfs' - name: 'ceph-j3'
mount_options: 'defaults' size: '10g'
- name: 'ceph-j4'
size: '10g'
cephjournal2:
partitions:
- name: 'ceph-j5'
size: '10g'
- name: 'ceph-j6'
size: '10g'
- name: 'ceph-j7'
size: '10g'
- name: 'ceph-j8'
size: '10g'
platform: platform:
kernel: 'hwe-16.04' kernel: 'hwe-16.04'
@ -210,6 +236,10 @@ data:
ceph-rgw: enabled ceph-rgw: enabled
ucp-maas: enabled ucp-maas: enabled
kube-dns: enabled kube-dns: enabled
tenant-ceph-control-plane: enabled
# tenant-ceph-mon: enabled
tenant-ceph-rgw: enabled
tenant-ceph-mgr: enabled
kubernetes-apiserver: enabled kubernetes-apiserver: enabled
kubernetes-controller-manager: enabled kubernetes-controller-manager: enabled
# kubernetes-etcd: enabled # kubernetes-etcd: enabled

View File

@ -74,14 +74,20 @@ data:
mountpoint: '/var' mountpoint: '/var'
fstype: 'ext4' fstype: 'ext4'
mount_options: 'defaults' mount_options: 'defaults'
cephjournal:
cephjournal1:
partitions: partitions:
- name: 'cephj' - name: 'ceph-j1'
size: '100g' size: '10g'
filesystem: - name: 'ceph-j2'
mountpoint: '/var/lib/ceph/dp' size: '10g'
fstype: 'xfs' cephjournal2:
mount_options: 'defaults' partitions:
- name: 'ceph-j3'
size: '10g'
- name: 'ceph-j4'
size: '10g'
ephemeral: ephemeral:
partitions: partitions:
- name: 'nova' - name: 'nova'

View File

@ -0,0 +1,12 @@
---
schema: deckhand/Passphrase/v1
metadata:
schema: metadata/Document/v1
name: tenant_ceph_fsid
layeringDefinition:
abstract: false
layer: site
storagePolicy: cleartext
# uuidgen
data: 29d8953d-0bb6-4ba1-a48a-f9be1c0937a9
...

View File

@ -0,0 +1,23 @@
---
# The purpose of this file is to define envrionment-specific parameters for the
# ceph client
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-client
layeringDefinition:
abstract: false
layer: site
parentSelector:
name: tenant-ceph-client-global
actions:
- method: merge
path: .
storagePolicy: cleartext
data:
values:
conf:
pool:
target:
osd: 12
...

View File

@ -0,0 +1,55 @@
---
# The purpose of this file is to define environment-specific parameters for
# ceph-osd
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: tenant-ceph-osd
layeringDefinition:
abstract: false
layer: site
parentSelector:
name: tenant-ceph-osd-global
actions:
- method: replace
path: .values.conf.storage.osd
- method: merge
path: .
storagePolicy: cleartext
data:
values:
labels:
osd:
node_selector_key: tenant-ceph-osd
node_selector_value: enabled
conf:
storage:
# NEWSITE-CHANGEME: The OSD count and configuration here should not need
# to change if your HW matches the HW used in this environment.
# Otherwise you may need to add or subtract disks to this list.
osd:
- data:
type: block-logical
location: /dev/sde
journal:
type: block-logical
location: /dev/sdb1
- data:
type: block-logical
location: /dev/sdf
journal:
type: block-logical
location: /dev/sdb2
- data:
type: block-logical
location: /dev/sdg
journal:
type: block-logical
location: /dev/sdc1
- data:
type: block-logical
location: /dev/sdh
journal:
type: block-logical
location: /dev/sdc2
...

View File

@ -21,6 +21,6 @@ data:
target: target:
# NEWSITE-CHANGEME: Total number of OSDs. Does not need to change if # NEWSITE-CHANGEME: Total number of OSDs. Does not need to change if
# your HW matches this site's HW. Verify for your environment. # your HW matches this site's HW. Verify for your environment.
# 8 OSDs per node x 4 nodes = 32 # 8 OSDs per node x 3 nodes = 24
osd: 32 osd: 24
... ...

View File

@ -24,52 +24,52 @@ data:
# to change if your HW matches the HW used in this environment. # to change if your HW matches the HW used in this environment.
# Otherwise you may need to add or subtract disks to this list. # Otherwise you may need to add or subtract disks to this list.
osd: osd:
- data:
type: block-logical
location: /dev/sdc
journal:
type: directory
location: /var/lib/ceph/cp/journal-sdc
- data: - data:
type: block-logical type: block-logical
location: /dev/sdd location: /dev/sdd
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdd location: /dev/sdb1
- data: - data:
type: block-logical type: block-logical
location: /dev/sde location: /dev/sde
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sde location: /dev/sdb2
- data: - data:
type: block-logical type: block-logical
location: /dev/sdf location: /dev/sdf
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdf location: /dev/sdb3
- data: - data:
type: block-logical type: block-logical
location: /dev/sdg location: /dev/sdg
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdg location: /dev/sdb4
- data: - data:
type: block-logical type: block-logical
location: /dev/sdh location: /dev/sdh
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdh location: /dev/sdc1
- data: - data:
type: block-logical type: block-logical
location: /dev/sdi location: /dev/sdi
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdi location: /dev/sdc2
- data: - data:
type: block-logical type: block-logical
location: /dev/sdj location: /dev/sdj
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdj location: /dev/sdc3
- data:
type: block-logical
location: /dev/sdk
journal:
type: block-logical
location: /dev/sdc4
... ...

View File

@ -28,52 +28,52 @@ data:
# to change if your HW matches the HW used in this environment. # to change if your HW matches the HW used in this environment.
# Otherwise you may need to add or subtract disks to this list. # Otherwise you may need to add or subtract disks to this list.
osd: osd:
- data:
type: block-logical
location: /dev/sdc
journal:
type: directory
location: /var/lib/ceph/cp/journal-sdc
- data: - data:
type: block-logical type: block-logical
location: /dev/sdd location: /dev/sdd
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdd location: /dev/sdb1
- data: - data:
type: block-logical type: block-logical
location: /dev/sde location: /dev/sde
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sde location: /dev/sdb2
- data: - data:
type: block-logical type: block-logical
location: /dev/sdf location: /dev/sdf
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdf location: /dev/sdb3
- data: - data:
type: block-logical type: block-logical
location: /dev/sdg location: /dev/sdg
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdg location: /dev/sdb4
- data: - data:
type: block-logical type: block-logical
location: /dev/sdh location: /dev/sdh
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdh location: /dev/sdc1
- data: - data:
type: block-logical type: block-logical
location: /dev/sdi location: /dev/sdi
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdi location: /dev/sdc2
- data: - data:
type: block-logical type: block-logical
location: /dev/sdj location: /dev/sdj
journal: journal:
type: directory type: block-logical
location: /var/lib/ceph/cp/journal-sdj location: /dev/sdc3
- data:
type: block-logical
location: /dev/sdk
journal:
type: block-logical
location: /dev/sdc4
... ...

View File

@ -320,6 +320,29 @@ data:
default: 7000 default: 7000
scheme: scheme:
default: "http" default: "http"
tenant_ceph_mon:
namespace: tenant-ceph
hosts:
default: ceph-mon
discovery: ceph-mon-discovery
host_fqdn_override:
default: null
port:
mon:
default: 6790
tenant_ceph_mgr:
namespace: tenant-ceph
hosts:
default: ceph-mgr
host_fqdn_override:
default: null
port:
mgr:
default: 7001
metrics:
default: 9284
scheme:
default: http
... ...
--- ---
schema: pegleg/EndpointCatalogue/v1 schema: pegleg/EndpointCatalogue/v1
@ -427,7 +450,7 @@ data:
osh: osh:
object_store: object_store:
name: swift name: swift
namespace: ceph namespace: openstack
hosts: hosts:
default: ceph-rgw default: ceph-rgw
public: radosgw public: radosgw
@ -446,7 +469,7 @@ data:
public: 443 public: 443
ceph_object_store: ceph_object_store:
name: radosgw name: radosgw
namespace: ceph namespace: openstack
hosts: hosts:
default: ceph-rgw default: ceph-rgw
public: radosgw public: radosgw

View File

@ -43,6 +43,7 @@ data:
- osh-infra-dashboards - osh-infra-dashboards
- openstack-ingress-controller - openstack-ingress-controller
- openstack-ceph-config - openstack-ceph-config
- openstack-tenant-ceph
- openstack-mariadb - openstack-mariadb
- openstack-memcached - openstack-memcached
- openstack-keystone - openstack-keystone