Glance

# NOTE: This file serves as an example only!
# It demonstrates a subset of the API features which are available and
# is NOT FIT FOR PRODUCTIVE USE. You need to adapt them to your
# specific environment, needs and scale.
# DO NOT DEPLOY THIS FILE WITH THE EXPECTATION THAT YOU WILL GET A
# YAOOK DEPLOYMENT FIT FOR ANY USE EXCEPT LOOKING AT IT.
apiVersion: yaook.cloud/v1
kind: GlanceDeployment
metadata:
  name: glance
spec:
  keystoneRef:
    name: keystone
  database:
    replicas: 1
    timeoutClient: 300
    proxy:
      replicas: 1
    backup:
      schedule: "0 * * * *"
  memcached: {}
  api:
    replicas: 1
    ingress:
      fqdn: "glance.yaook.cloud"
      port: 32443
  glanceConfig:
    glance_store:
      default_store: "rbd"
    database:
      # (optional) connection_recycle_time hould always be ~10%
      # smaller than the haproxy timeoutClient
      connection_recycle_time: 280
  backends:
    ceph:
      keyringReference: rook-ceph-client-glance
      keyringUsername: glance
      keyringPoolname: glance-pool
#      cephConfig:
#        global:
#          "mon_host": "rook-ceph-mon-a.rook-ceph:6789,rook-ceph-mon-b.rook-ceph:6789,rook-ceph-mon-c.rook-ceph:6789"
  region:
    name: MyRegion
  policy:
    "context_is_admin": "role:admin"
  issuerRef:
    name: ca-issuer
  targetRelease: zed

Glance using a file based backend

Note that your selected Storageclass muss support ReadWriteMany Volumes

# NOTE: This file serves as an example only!
# It demonstrates a subset of the API features which are available and
# is NOT FIT FOR PRODUCTIVE USE. You need to adapt them to your
# specific environment, needs and scale.
# DO NOT DEPLOY THIS FILE WITH THE EXPECTATION THAT YOU WILL GET A
# YAOOK DEPLOYMENT FIT FOR ANY USE EXCEPT LOOKING AT IT.
apiVersion: yaook.cloud/v1
kind: GlanceDeployment
metadata:
  name: glance
spec:
  keystoneRef:
    name: keystone
  database:
    replicas: 1
    proxy:
      replicas: 1
    backup:
      schedule: "0 * * * *"
  memcached: {}
  api:
    replicas: 1
    ingress:
      fqdn: "glance.yaook.cloud"
      port: 32443
  glanceConfig:
    glance_store:
      default_store: "file"
  backends:
    file:
      storageSize: 150G
      storageClassName: mycoolstorageclass
  region:
    name: MyRegion
  policy:
    "context_is_admin": "role:admin"
  issuerRef:
    name: ca-issuer
  targetRelease: zed

Glance using a s3 based backend

Supported starting with the Ussuri release.

credentialRef points to a external created secret containing the keys access and secret. The secret needs to be within the same namespace as the glancedeployment.

# NOTE: This file serves as an example only!
# It demonstrates a subset of the API features which are available and
# is NOT FIT FOR PRODUCTIVE USE. You need to adapt them to your
# specific environment, needs and scale.
# DO NOT DEPLOY THIS FILE WITH THE EXPECTATION THAT YOU WILL GET A
# YAOOK DEPLOYMENT FIT FOR ANY USE EXCEPT LOOKING AT IT.
apiVersion: v1
kind: Secret
metadata:
  name: creds
data:
  access: "s3accesskey"
  secret: "s3secretkey"
---
apiVersion: yaook.cloud/v1
kind: GlanceDeployment
metadata:
  name: glance
spec:
  keystoneRef:
    name: keystone
  database:
    replicas: 1
    proxy:
      replicas: 1
    backup:
      schedule: "0 * * * *"
  memcached: {}
  api:
    replicas: 1
    ingress:
      fqdn: "glance.yaook.cloud"
      port: 32443
  glanceConfig:
    glance_store:
      default_store: "s3"
  backends:
    s3:
      endpoint: "https://s3.generic.endpoint"
      bucket: "tekcub"
      addressingStyle: "virtual"
      credentialRef:
        name: "creds"
  region:
    name: MyRegion
  policy:
    "context_is_admin": "role:admin"
  issuerRef:
    name: ca-issuer
  targetRelease: zed

Specifying secrets in the configuration

To include confidential values in the configuration you can use glanceSecrets. This allows use to reference an external secret which is included at a specific path in the configuration

# NOTE: This file serves as an example only!
# It demonstrates a subset of the API features which are available and
# is NOT FIT FOR PRODUCTIVE USE. You need to adapt them to your
# specific environment, needs and scale.
# DO NOT DEPLOY THIS FILE WITH THE EXPECTATION THAT YOU WILL GET A
# YAOOK DEPLOYMENT FIT FOR ANY USE EXCEPT LOOKING AT IT.
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
data:
  mykey: "SomeValueAsBase64"
---
apiVersion: yaook.cloud/v1
kind: GlanceDeployment
metadata:
  name: glance
spec:
  keystoneRef:
    name: keystone
  database:
    replicas: 1
    proxy:
      replicas: 1
    backup:
      schedule: "0 * * * *"
  memcached: {}
  api:
    replicas: 1
    ingress:
      fqdn: "glance.yaook.cloud"
      port: 32443
  glanceConfig:
    glance_store:
      default_store: "rbd"
  glanceSecrets:
    - secretName: mysecret
      items:
        - key: mykey
          path: /DEFAULT/transport_url
  backends:
    ceph:
      keyringReference: glance-client-key
      keyringUsername: glance
      keyringPoolname: glance-pool
#      cephConfig:
#        global:
#          "mon_host": "rook-ceph-mon-a.rook-ceph:6789,rook-ceph-mon-b.rook-ceph:6789,rook-ceph-mon-c.rook-ceph:6789"
  region:
    name: MyRegion
  policy:
    "context_is_admin": "role:admin"
  targetRelease: zed