diff --git a/crd-chart/templates/canary-checker.flanksource.com.yaml b/crd-chart/templates/canary-checker.flanksource.com.yaml index 1a3aac46..115079a6 100644 --- a/crd-chart/templates/canary-checker.flanksource.com.yaml +++ b/crd-chart/templates/canary-checker.flanksource.com.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.5 name: canaries.canaries.flanksource.com spec: group: canaries.flanksource.com @@ -1762,14 +1762,14 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -4505,10 +4505,13 @@ spec: description: The key to select. type: string name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must be defined @@ -4539,10 +4542,13 @@ spec: description: The key of the secret to select from. Must be a valid secret key. type: string name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be defined @@ -4563,9 +4569,6 @@ spec: items: properties: path: - description: |- - Path to the artifact on the check runner. - Special paths: /dev/stdout & /dev/stdin type: string required: - path @@ -4574,6 +4577,8 @@ spec: checkout: description: Checkout details the git repository that should be mounted to the process properties: + branch: + type: string certificate: properties: name: @@ -4663,6 +4668,9 @@ spec: type: string type: object type: object + type: + description: Type of connection e.g. github, gitlab + type: string url: type: string username: @@ -4936,6 +4944,8 @@ spec: tenantID: type: string type: object + fromConfigItem: + type: string gcp: properties: connection: @@ -4988,6 +4998,52 @@ spec: description: Skip TLS verify type: boolean type: object + kubernetes: + properties: + connection: + type: string + kubeconfig: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account whose token should be fetched + type: string + type: object + type: object + type: object type: object description: description: Description for the check @@ -13501,7 +13557,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.5 name: components.canaries.flanksource.com spec: group: canaries.flanksource.com @@ -13593,7 +13649,7 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array @@ -13608,7 +13664,7 @@ spec: description: Deprecated. Use `types` type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -13742,7 +13798,7 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array @@ -13757,7 +13813,7 @@ spec: description: Deprecated. Use `types` type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -13894,14 +13950,14 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -13959,7 +14015,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.5 name: topologies.canaries.flanksource.com spec: group: canaries.flanksource.com @@ -14038,14 +14094,14 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -14105,7 +14161,7 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array @@ -14120,7 +14176,7 @@ spec: description: Deprecated. Use `types` type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -14254,7 +14310,7 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array @@ -14269,7 +14325,7 @@ spec: description: Deprecated. Use `types` type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -14406,14 +14462,14 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -14504,7 +14560,7 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array @@ -14519,7 +14575,7 @@ spec: description: Deprecated. Use `types` type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -14564,14 +14620,14 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -14655,7 +14711,7 @@ spec: description: Search query that applies to the resource name, tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array @@ -14670,7 +14726,7 @@ spec: description: Deprecated. Use `types` type: string types: - description: StringArray represents a one-dimensional array of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array diff --git a/crd-chart/templates/configs.flanksource.com_scrapeconfigs.yaml b/crd-chart/templates/configs.flanksource.com_scrapeconfigs.yaml index 564d6fe5..df75215a 100644 --- a/crd-chart/templates/configs.flanksource.com_scrapeconfigs.yaml +++ b/crd-chart/templates/configs.flanksource.com_scrapeconfigs.yaml @@ -6478,6 +6478,20 @@ spec: status: description: ScrapeConfigStatus defines the observed state of ScrapeConfig properties: + lastRun: + properties: + error: + type: integer + errors: + items: + type: string + type: array + success: + type: integer + timestamp: + format: date-time + type: string + type: object observedGeneration: format: int64 type: integer diff --git a/crd-chart/templates/mission-control.flanksource.com_connections.yaml b/crd-chart/templates/mission-control.flanksource.com_connections.yaml index 2816ee62..8f6357e8 100644 --- a/crd-chart/templates/mission-control.flanksource.com_connections.yaml +++ b/crd-chart/templates/mission-control.flanksource.com_connections.yaml @@ -39,6 +39,99 @@ spec: spec: description: ConnectionSpec defines the desired state of Connection properties: + anthropic: + properties: + apiKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to + fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account + whose token should be fetched + type: string + type: object + type: object + model: + type: string + url: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to + fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account + whose token should be fetched + type: string + type: object + type: object + required: + - apiKey + type: object aws: properties: accessKey: @@ -1667,6 +1760,190 @@ spec: - topic - username type: object + ollama: + properties: + apiKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to + fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account + whose token should be fetched + type: string + type: object + type: object + model: + type: string + url: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to + fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account + whose token should be fetched + type: string + type: object + type: object + type: object + openai: + properties: + apiKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to + fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account + whose token should be fetched + type: string + type: object + type: object + model: + type: string + url: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to + fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account + whose token should be fetched + type: string + type: object + type: object + required: + - apiKey + type: object password: description: DEPRECATED properties: diff --git a/crd-chart/templates/mission-control.flanksource.com_incidentrules.yaml b/crd-chart/templates/mission-control.flanksource.com_incidentrules.yaml index 0008017b..64dd26dc 100644 --- a/crd-chart/templates/mission-control.flanksource.com_incidentrules.yaml +++ b/crd-chart/templates/mission-control.flanksource.com_incidentrules.yaml @@ -74,6 +74,11 @@ spec: type: string fieldSelector: type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array id: type: string includeDeleted: @@ -99,16 +104,14 @@ spec: tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array diff --git a/crd-chart/templates/mission-control.flanksource.com_notifications.yaml b/crd-chart/templates/mission-control.flanksource.com_notifications.yaml index 5e028d66..4c803050 100644 --- a/crd-chart/templates/mission-control.flanksource.com_notifications.yaml +++ b/crd-chart/templates/mission-control.flanksource.com_notifications.yaml @@ -79,6 +79,11 @@ spec: person: description: ID or email of the person type: string + playbook: + description: |- + Name or / of the playbook to run. + When a playbook is set as the recipient, a run is triggered. + type: string properties: additionalProperties: type: string @@ -104,12 +109,31 @@ spec: If specified, it should be a valid duration string (e.g., "5m", "1h"). type: string + waitForEvalPeriod: + description: |- + WaitForEvalPeriod is an additional delay after WaitFor before evaluating + Kubernetes config health. Format: "5m", "1h" + type: string required: - events - to type: object status: description: NotificationStatus defines the observed state of Notification + properties: + error: + type: string + failed: + type: integer + lastSent: + format: date-time + type: string + pending: + type: integer + sent: + type: integer + status: + type: string type: object type: object served: true diff --git a/crd-chart/templates/mission-control.flanksource.com_notificationsilences.yaml b/crd-chart/templates/mission-control.flanksource.com_notificationsilences.yaml new file mode 100644 index 00000000..ba4952f9 --- /dev/null +++ b/crd-chart/templates/mission-control.flanksource.com_notificationsilences.yaml @@ -0,0 +1,125 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: notificationsilences.mission-control.flanksource.com +spec: + group: mission-control.flanksource.com + names: + kind: NotificationSilence + listKind: NotificationSilenceList + plural: notificationsilences + singular: notificationsilence + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: NotificationSilence is the Schema for the managed Notification + Silences + 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: + properties: + description: + type: string + filter: + description: Filter evaluates whether to apply the silence. When provided, + silence is applied only if filter evaluates to true + type: string + from: + description: From time in RFC3339 format or just datetime + type: string + recursive: + type: boolean + selectors: + description: List of resource selectors + items: + properties: + agent: + description: |- + Agent can be the agent id or the name of the agent. + Additionally, the special "self" value can be used to select resources without an agent. + type: string + cache: + description: |- + Cache directives + 'no-cache' (should not fetch from cache but can be cached) + 'no-store' (should not cache) + 'max-age=X' (cache for X duration) + type: string + fieldSelector: + type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array + id: + type: string + includeDeleted: + type: boolean + labelSelector: + type: string + limit: + type: integer + name: + type: string + namespace: + type: string + scope: + description: |- + Scope is the reference for parent of the resource to select. + For config items, the scope is the scraper id + For checks, it's canaries and + For components, it's topology. + It can either be a uuid or namespace/name + type: string + search: + description: Search query that applies to the resource name, + tag & labels. + type: string + statuses: + description: Statuses filter resources by the status + items: + type: string + type: array + tagSelector: + type: string + types: + description: Types filter resources by the type + items: + type: string + type: array + type: object + type: array + until: + description: Until time in RFC3339 format or just datetime + type: string + type: object + status: + description: NotificationStatus defines the observed state of Notification + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/crd-chart/templates/mission-control.flanksource.com_permissiongroups.yaml b/crd-chart/templates/mission-control.flanksource.com_permissiongroups.yaml new file mode 100644 index 00000000..27d1ce27 --- /dev/null +++ b/crd-chart/templates/mission-control.flanksource.com_permissiongroups.yaml @@ -0,0 +1,71 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: permissiongroups.mission-control.flanksource.com +spec: + group: mission-control.flanksource.com + names: + kind: PermissionGroup + listKind: PermissionGroupList + plural: permissiongroups + singular: permissiongroup + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: PermissionGroup is the Schema for the Mission Control Permission + Groups + 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: + properties: + name: + description: Name for the group + type: string + notifications: + items: + properties: + name: + type: string + namespace: + type: string + type: object + type: array + people: + items: + type: string + type: array + teams: + items: + type: string + type: array + required: + - name + type: object + status: + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/crd-chart/templates/mission-control.flanksource.com_permissions.yaml b/crd-chart/templates/mission-control.flanksource.com_permissions.yaml new file mode 100644 index 00000000..9300eacf --- /dev/null +++ b/crd-chart/templates/mission-control.flanksource.com_permissions.yaml @@ -0,0 +1,295 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: permissions.mission-control.flanksource.com +spec: + group: mission-control.flanksource.com + names: + kind: Permission + listKind: PermissionList + plural: permissions + singular: permission + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: Permission is the Schema for the Mission Control Permission + 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: + properties: + actions: + description: Actions specify the operation that the permission allows + or denies. + items: + type: string + minItems: 1 + type: array + agents: + description: List of agent ids whose configs/components are accessible + to a person when RLS is enabled + items: + type: string + type: array + deny: + description: |- + Deny indicates whether the permission should explicitly deny the specified action. + + + Default: false + type: boolean + description: + description: Description provides a brief explanation of the permission. + type: string + object: + description: Object identifies the resource or object that the permission + is associated with. + properties: + components: + items: + properties: + agent: + description: |- + Agent can be the agent id or the name of the agent. + Additionally, the special "self" value can be used to select resources without an agent. + type: string + cache: + description: |- + Cache directives + 'no-cache' (should not fetch from cache but can be cached) + 'no-store' (should not cache) + 'max-age=X' (cache for X duration) + type: string + fieldSelector: + type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array + id: + type: string + includeDeleted: + type: boolean + labelSelector: + type: string + limit: + type: integer + name: + type: string + namespace: + type: string + scope: + description: |- + Scope is the reference for parent of the resource to select. + For config items, the scope is the scraper id + For checks, it's canaries and + For components, it's topology. + It can either be a uuid or namespace/name + type: string + search: + description: Search query that applies to the resource name, + tag & labels. + type: string + statuses: + description: Statuses filter resources by the status + items: + type: string + type: array + tagSelector: + type: string + types: + description: Types filter resources by the type + items: + type: string + type: array + type: object + type: array + configs: + items: + properties: + agent: + description: |- + Agent can be the agent id or the name of the agent. + Additionally, the special "self" value can be used to select resources without an agent. + type: string + cache: + description: |- + Cache directives + 'no-cache' (should not fetch from cache but can be cached) + 'no-store' (should not cache) + 'max-age=X' (cache for X duration) + type: string + fieldSelector: + type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array + id: + type: string + includeDeleted: + type: boolean + labelSelector: + type: string + limit: + type: integer + name: + type: string + namespace: + type: string + scope: + description: |- + Scope is the reference for parent of the resource to select. + For config items, the scope is the scraper id + For checks, it's canaries and + For components, it's topology. + It can either be a uuid or namespace/name + type: string + search: + description: Search query that applies to the resource name, + tag & labels. + type: string + statuses: + description: Statuses filter resources by the status + items: + type: string + type: array + tagSelector: + type: string + types: + description: Types filter resources by the type + items: + type: string + type: array + type: object + type: array + playbooks: + items: + properties: + agent: + description: |- + Agent can be the agent id or the name of the agent. + Additionally, the special "self" value can be used to select resources without an agent. + type: string + cache: + description: |- + Cache directives + 'no-cache' (should not fetch from cache but can be cached) + 'no-store' (should not cache) + 'max-age=X' (cache for X duration) + type: string + fieldSelector: + type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array + id: + type: string + includeDeleted: + type: boolean + labelSelector: + type: string + limit: + type: integer + name: + type: string + namespace: + type: string + scope: + description: |- + Scope is the reference for parent of the resource to select. + For config items, the scope is the scraper id + For checks, it's canaries and + For components, it's topology. + It can either be a uuid or namespace/name + type: string + search: + description: Search query that applies to the resource name, + tag & labels. + type: string + statuses: + description: Statuses filter resources by the status + items: + type: string + type: array + tagSelector: + type: string + types: + description: Types filter resources by the type + items: + type: string + type: array + type: object + type: array + type: object + subject: + description: Subject defines the entity (e.g., user, group) to which + the permission applies. + properties: + notification: + description: |- + Subject of the permission. + Can be + - a permission group name + - id of a resource + - / of a resource + type: string + person: + description: |- + Subject of the permission. + Can be + - a permission group name + - id of a resource + - / of a resource + type: string + team: + description: |- + Subject of the permission. + Can be + - a permission group name + - id of a resource + - / of a resource + type: string + type: object + tags: + additionalProperties: + type: string + description: List of config/component tags a person is allowed to + access to when RLS is enabled + type: object + required: + - actions + - object + - subject + type: object + status: + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/crd-chart/templates/mission-control.flanksource.com_playbooks.yaml b/crd-chart/templates/mission-control.flanksource.com_playbooks.yaml index de6ad25f..7921daa1 100644 --- a/crd-chart/templates/mission-control.flanksource.com_playbooks.yaml +++ b/crd-chart/templates/mission-control.flanksource.com_playbooks.yaml @@ -42,6 +42,142 @@ spec: description: List of actions that need to be executed by this playbook. items: properties: + ai: + properties: + analysis: + description: Select analysis for the config to provide as + an additional context to the AI model. + properties: + since: + type: string + required: + - since + type: object + apiKey: + description: API Key + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used + to fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service + account whose token should be fetched + type: string + type: object + type: object + apiURL: + description: |- + BaseURL or API url. + Example: server URL for ollama or custom url for Anthropic if using a proxy + type: string + backend: + description: |- + Optionally specify the LLM backend. + Supported: anthropic (default), ollama, openai. + type: string + changes: + description: Select changes for the config to provide as + an additional context to the AI model. + properties: + since: + type: string + required: + - since + type: object + config: + description: |- + The config id to operate on. + If not provided, the playbook's config is used. + type: string + connection: + description: Connection to setup the llm backend connection + type: string + formats: + description: |- + Output format of the prompt. + Supported: markdown (default), slack. + items: + type: string + type: array + model: + description: |- + Model name based on the backend chosen. + Example: gpt-4o for openai, claude-3-5-sonnet-latest for Anthropic, llama3.1:8b for Ollama + type: string + prompt: + description: Prompt is the humna prompt + type: string + relationships: + description: Select related configs to provide as an additional + context to the AI model. + items: + properties: + analysis: + properties: + since: + type: string + required: + - since + type: object + changes: + properties: + since: + type: string + required: + - since + type: object + depth: + description: max depth to traverse the relationship. + Defaults to 3 + type: integer + direction: + description: use incoming/outgoing/all relationships. + type: string + type: object + type: array + systemPrompt: + description: |- + system prompt is a way to provide context, instructions, and guidelines to the LLM before presenting it + with a question or task. + By using a system prompt, you can set the stage for the conversation, specifying LLM's role, personality, + tone, or any other relevant information that will help it better understand and respond to the user's input. + type: string + required: + - prompt + - systemPrompt + type: object azureDevopsPipeline: properties: org: @@ -1279,6 +1415,11 @@ spec: type: string fieldSelector: type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array id: type: string includeDeleted: @@ -1304,16 +1445,14 @@ spec: tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -1337,6 +1476,11 @@ spec: type: string fieldSelector: type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array id: type: string includeDeleted: @@ -1362,16 +1506,14 @@ spec: tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array @@ -1395,6 +1537,11 @@ spec: type: string fieldSelector: type: string + healths: + description: Healths filter resources by the health + items: + type: string + type: array id: type: string includeDeleted: @@ -1420,16 +1567,14 @@ spec: tag & labels. type: string statuses: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Statuses filter resources by the status items: type: string type: array tagSelector: type: string types: - description: StringArray represents a one-dimensional array - of the PostgreSQL character types. + description: Types filter resources by the type items: type: string type: array