Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
a25975a
Cloudkitty deployment
jlarriba Jun 20, 2025
c223c8b
Merge branch 'main' into cloudkitty_separate
jlarriba Jun 30, 2025
294361a
CloudKitty TLS
jlarriba Jun 30, 2025
d803db4
update prometheus_collector
mgirgisf Jul 17, 2025
f91b1b8
Merge pull request #2 from mgirgisf/cloudkitty-prom-collector
jlarriba Jul 23, 2025
6081ab1
Make it compatible with previous oscp
jlarriba Jul 24, 2025
1f89106
From mgirgis: Add Cloudkitty healthcheck.py
jlarriba Aug 26, 2025
13ef450
Remove /v2 from path in cloudkitty, as the CLI automatically adds it
jlarriba Aug 26, 2025
73afff2
Fix pre-commit
jlarriba Aug 26, 2025
76faf41
[CloudKitty] Add osp-secret as the default for secret
elfiesmelfie Aug 29, 2025
63e39e1
[cloudkitty] Add LokiStack deployment
vyzigold Sep 19, 2025
60038aa
[cloudkitty] Add missing rbac annotations
vyzigold Sep 18, 2025
4674fc0
[cloudkitty] Add a default value for cloudkitty.s3StorageConfig
elfiesmelfie Sep 17, 2025
d520325
[cloudkitty] Update probes and mounts for CloudKitty
elfiesmelfie Sep 10, 2025
f1a335b
Merge pull request #4 from elfiesmelfie/ck_add_default_secret
jlarriba Sep 22, 2025
b6516fe
Merge pull request #5 from vyzigold/cloudkitty_loki
jlarriba Sep 22, 2025
64d9b00
Cloudkitty deployment
jlarriba Jun 20, 2025
1acd398
CloudKitty TLS
jlarriba Jun 30, 2025
aa300d9
update prometheus_collector
mgirgisf Jul 17, 2025
ed8ab7f
Make it compatible with previous oscp
jlarriba Jul 24, 2025
6c6efff
From mgirgis: Add Cloudkitty healthcheck.py
jlarriba Aug 26, 2025
2432fe2
Remove /v2 from path in cloudkitty, as the CLI automatically adds it
jlarriba Aug 26, 2025
f066c86
Fix pre-commit
jlarriba Aug 26, 2025
e1891b5
[CloudKitty] Add osp-secret as the default for secret
elfiesmelfie Aug 29, 2025
fba52de
[cloudkitty] Add LokiStack deployment
vyzigold Sep 19, 2025
bc01f18
[cloudkitty] Add missing rbac annotations
vyzigold Sep 18, 2025
5893a8f
[cloudkitty] Add a default value for cloudkitty.s3StorageConfig
elfiesmelfie Sep 17, 2025
9ddf038
Merge branch 'cloudkitty_separate' of github.com:jlarriba/telemetry-o…
jlarriba Sep 22, 2025
4869d57
Merge branch 'main' into cloudkitty_separate
jlarriba Sep 22, 2025
22adfad
Merge branch 'cloudkitty_separate' into efoley/fix_pod_startup_errors
elfiesmelfie Sep 22, 2025
c841566
Merge branch 'main' into cloudkitty_separate
jlarriba Sep 23, 2025
447e1bf
Fix issues after golang update
vyzigold Sep 23, 2025
b0d5b79
Merge pull request #6 from elfiesmelfie/efoley/fix_pod_startup_errors
jlarriba Sep 23, 2025
6f6a2cc
Merge pull request #7 from vyzigold/golang_update_fix
jlarriba Sep 23, 2025
1864054
Address review comments
jlarriba Sep 23, 2025
f9fb2fa
Apply suggestions from code review
jlarriba Sep 23, 2025
518d756
Apply suggestions from code review
jlarriba Sep 23, 2025
fd1b0c7
Merge branch 'cloudkitty_separate' of github.com:jlarriba/telemetry-o…
jlarriba Sep 23, 2025
15f44d2
Make cloudkitty s3 config optional
vyzigold Sep 23, 2025
d647fbf
Update the Healthcheck.py
mgirgisf Sep 24, 2025
a3b4d44
Add s3 config webhook validation
vyzigold Sep 26, 2025
296bca4
Merge pull request #9 from mgirgisf/mgirgis-cloudkitty-separate
jlarriba Sep 26, 2025
ff32015
Merge pull request #8 from vyzigold/optional_s3_config
jlarriba Sep 29, 2025
ac359d9
Fix CloudKittySpecCore issues to avoid exposing the images to the con…
jlarriba Sep 30, 2025
020bd70
Fix PrometheusTLS connection
jlarriba Oct 1, 2025
bed9eb4
Fix healthchecks
jlarriba Oct 2, 2025
9818ce0
Rebase on top of main
jlarriba Oct 7, 2025
04198b2
Fix pre-commit
jlarriba Oct 7, 2025
ee3c4a2
Merge branch 'main' into cloudkitty_separate
jlarriba Oct 9, 2025
36cb4c9
Add kuttl assertions for CloudKitty resources
jlarriba Oct 10, 2025
168abfe
Do not allow for CloudKitty deployment if the PrometheusEndpoint secr…
jlarriba Oct 15, 2025
ce96df1
Allow for configuration of the period CloudKitty config option
jlarriba Oct 21, 2025
dc42c6c
Removed unused storage_influxdb section, as we only support Loki storage
jlarriba Oct 21, 2025
515eab1
[OSPRH-21081] Lower privileges for CK related pods
vyzigold Oct 23, 2025
8f3eb14
Add lokiStackSize field to CK CRD
vyzigold Oct 23, 2025
55fc7f4
Reconcile every 5 seconds, not 5 nanoseconds
jlarriba Oct 29, 2025
6e04e04
Merge pull request #10 from vyzigold/ck_lowest_privileges
jlarriba Oct 29, 2025
e38757b
Merge pull request #11 from vyzigold/add-LokiStackSize
jlarriba Oct 29, 2025
4dd28e2
Merge branch 'main' into cloudkitty_separate
elfiesmelfie Oct 29, 2025
f2f0854
Allow lokiStackSize value to be empty string
vyzigold Oct 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions PROJECT
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
# Code generated by tool. DO NOT EDIT.
# This file is used to track the info used to scaffold your project
# and allow the plugins properly work.
# More info: https://book.kubebuilder.io/reference/project-config.html
domain: openstack.org
layout:
- go.kubebuilder.io/v3
Expand Down Expand Up @@ -69,4 +65,31 @@ resources:
defaulting: true
validation: true
webhookVersion: v1
- api:
crdVersion: v1
namespaced: true
controller: true
domain: openstack.org
group: telemetry
kind: CloudKittyApi
path: github.com/openstack-k8s-operators/telemetry-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
controller: true
domain: openstack.org
group: telemetry
kind: CloudKittyProc
path: github.com/openstack-k8s-operators/telemetry-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
controller: true
domain: openstack.org
group: telemetry
kind: CloudKitty
path: github.com/openstack-k8s-operators/telemetry-operator/api/v1beta1
version: v1beta1
version: "3"
5 changes: 5 additions & 0 deletions api/bases/telemetry.openstack.org_autoscalings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,11 @@ spec:
description: CeilometerService - Selector to get the ceilometer
service password from the Secret
type: string
cloudKittyService:
default: CloudKittyPassword
description: CloudKittyService - Selector to get the CloudKitty
service password from the Secret
type: string
type: object
preserveJobs:
default: false
Expand Down
5 changes: 5 additions & 0 deletions api/bases/telemetry.openstack.org_ceilometers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,11 @@ spec:
description: CeilometerService - Selector to get the ceilometer
service password from the Secret
type: string
cloudKittyService:
default: CloudKittyPassword
description: CloudKittyService - Selector to get the CloudKitty
service password from the Secret
type: string
type: object
proxyImage:
type: string
Expand Down
711 changes: 711 additions & 0 deletions api/bases/telemetry.openstack.org_cloudkitties.yaml

Large diffs are not rendered by default.

495 changes: 495 additions & 0 deletions api/bases/telemetry.openstack.org_cloudkittyapis.yaml

Large diffs are not rendered by default.

320 changes: 320 additions & 0 deletions api/bases/telemetry.openstack.org_cloudkittyprocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,320 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
name: cloudkittyprocs.telemetry.openstack.org
spec:
group: telemetry.openstack.org
names:
kind: CloudKittyProc
listKind: CloudKittyProcList
plural: cloudkittyprocs
singular: cloudkittyproc
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: NetworkAttachments
jsonPath: .status.networkAttachments
name: NetworkAttachments
type: string
- description: Status
jsonPath: .status.conditions[0].status
name: Status
type: string
- description: Message
jsonPath: .status.conditions[0].message
name: Message
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: CloudKittyProc is the Schema for the cloudkittprocs API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: CloudKittyProcSpec defines the desired state of CloudKitty
Processor
properties:
containerImage:
description: ContainerImage - CloudKitty Container Image URL (will
be set to environmental default if empty)
type: string
customServiceConfig:
description: |-
CustomServiceConfig - customize the service config using this parameter to change service defaults,
or overwrite rendered information using raw OpenStack config format. The content gets added to
to /etc/<service>/<service>.conf.d directory as a custom config file.
type: string
customServiceConfigSecrets:
description: |-
CustomServiceConfigSecrets - customize the service config using this parameter to specify Secrets
that contain sensitive service config data. The content of each Secret gets added to the
/etc/<service>/<service>.conf.d directory as a custom config file.
items:
type: string
type: array
x-kubernetes-list-type: atomic
databaseAccount:
default: cloudkitty
description: DatabaseAccount - optional MariaDBAccount used for cloudkitty
DB, defaults to cloudkitty
type: string
databaseHostname:
description: DatabaseHostname - CloudKitty Database Hostname
type: string
networkAttachments:
description: NetworkAttachments is a list of NetworkAttachment resource
names to expose the services to the given network
items:
type: string
type: array
x-kubernetes-list-type: atomic
nodeSelector:
additionalProperties:
type: string
description: |-
NodeSelector to target subset of worker nodes running this service. Setting here overrides
any global NodeSelector settings within the CloudKitty CR.
type: object
passwordSelector:
default:
cloudKittyService: CloudKittyPassword
description: PasswordsSelectors - Selectors to identify the ServiceUser
password from the Secret
properties:
aodhService:
default: AodhPassword
description: AodhService - Selector to get the aodh service password
from the Secret
type: string
ceilometerService:
default: CeilometerPassword
description: CeilometerService - Selector to get the ceilometer
service password from the Secret
type: string
cloudKittyService:
default: CloudKittyPassword
description: CloudKittyService - Selector to get the CloudKitty
service password from the Secret
type: string
type: object
replicas:
default: 1
description: Replicas - CloudKitty API Replicas
format: int32
minimum: 0
type: integer
resources:
description: |-
Resources - Compute Resources required by this service (Limits/Requests).
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.


This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.


This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
secret:
description: Secret containing OpenStack password information
type: string
serviceAccount:
description: ServiceAccount - service account name used internally
to provide CloudKitty services the default SA name
type: string
serviceUser:
default: cloudkitty
description: ServiceUser - optional username used for this service
to register in cloudkitty
type: string
tls:
description: TLS - Parameters related to the TLS
properties:
caBundleSecretName:
description: CaBundleSecretName - holding the CA certs in a pre-created
bundle file
type: string
secretName:
description: SecretName - holding the cert, key for the service
type: string
type: object
topologyRef:
description: |-
TopologyRef to apply the Topology defined by the associated CR referenced
by name
properties:
name:
description: Name - The Topology CR name that the Service references
type: string
namespace:
description: |-
Namespace - The Namespace to fetch the Topology CR referenced
NOTE: Namespace currently points by default to the same namespace where
the Service is deployed. Customizing the namespace is not supported and
webhooks prevent editing this field to a value different from the
current project
type: string
type: object
transportURLSecret:
description: Secret containing RabbitMq transport URL
type: string
type: object
status:
description: CloudKittyProcStatus defines the observed state of CloudKitty
Processor
properties:
conditions:
description: Conditions
items:
description: Condition defines an observation of a API resource
operational state.
properties:
lastTransitionTime:
description: |-
Last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition
in CamelCase.
type: string
severity:
description: |-
Severity provides a classification of Reason code, so the current situation is immediately
understandable and could act accordingly.
It is meant for situations where Status=False and it should be indicated if it is just
informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue
and no actions to automatically resolve the issue can/should be done).
For conditions where Status=Unknown or Status=True the Severity should be SeverityNone.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of condition in CamelCase.
type: string
required:
- lastTransitionTime
- status
- type
type: object
type: array
hash:
additionalProperties:
type: string
description: Map of hashes to track e.g. job status
type: object
lastAppliedTopology:
description: LastAppliedTopology - the last applied Topology
properties:
name:
description: Name - The Topology CR name that the Service references
type: string
namespace:
description: |-
Namespace - The Namespace to fetch the Topology CR referenced
NOTE: Namespace currently points by default to the same namespace where
the Service is deployed. Customizing the namespace is not supported and
webhooks prevent editing this field to a value different from the
current project
type: string
type: object
networkAttachments:
additionalProperties:
items:
type: string
type: array
description: NetworkAttachments status of the deployment pods
type: object
observedGeneration:
description: |-
ObservedGeneration - the most recent generation observed for this service.
If the observed generation is different than the spec generation, then the
controller has not started processing the latest changes, and the status
and its conditions are likely stale.
format: int64
type: integer
readyCount:
default: 0
description: ReadyCount of CloudKitty Processor instances
format: int32
minimum: 0
type: integer
required:
- readyCount
type: object
type: object
served: true
storage: true
subresources:
status: {}
Loading