Merge pull request #134 from prophetstor-ai/federatorai-4.6.1
(Prophetstor) Update Federator.ai to version v4.6.1pull/156/head
commit
0393fd528c
Binary file not shown.
|
@ -0,0 +1,22 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
|
@ -0,0 +1,26 @@
|
|||
annotations:
|
||||
catalog.cattle.io/certified: partner
|
||||
catalog.cattle.io/display-name: Federator.ai
|
||||
catalog.cattle.io/release-name: federatorai
|
||||
apiVersion: v1
|
||||
appVersion: 4.6.1-ga
|
||||
description: Federator.ai helps enterprises optimize cloud resources, maximize application
|
||||
performance, and save significant cost without excessive over-provisioning or under-provisioning
|
||||
of resources, meeting the service-level requirements of their applications.
|
||||
home: https://www.prophetstor.com
|
||||
icon: https://raw.githubusercontent.com/prophetstor-ai/public/master/images/logo.png
|
||||
keywords:
|
||||
- AI
|
||||
- Resource Orchestration
|
||||
- NoOps
|
||||
- AIOps
|
||||
- Intelligent Workload Management
|
||||
- Cost Optimization
|
||||
kubeVersion: 1.11 - 1.21
|
||||
maintainers:
|
||||
- email: support@prophetstor.com
|
||||
name: ProphetStor Data Services, Inc.
|
||||
name: federatorai
|
||||
sources:
|
||||
- https://www.prophetstor.com
|
||||
version: 4.6.100
|
|
@ -0,0 +1,102 @@
|
|||
# <img src="https://raw.githubusercontent.com/prophetstor-ai/public/master/images/logo.png" width=60/> Federator.ai Operator
|
||||
Federator.ai helps enterprises optimize cloud resources, maximize application performance, and save significant cost without excessive over-provisioning or under-provisioning of resources, meeting the service-level requirements of their applications.
|
||||
|
||||
Enterprises often lack understanding of the resources needed to support their applications. This leads to either excessive over-provisioning or under-provisioning of resources (CPU, memory, storage). Using machine learning, Federator.ai determines the optimal cloud resources needed to support any workload on OpenShift and helps users find the best-cost instances from cloud providers for their applications.
|
||||
|
||||
|
||||
**Multi-layer workload prediction**
|
||||
|
||||
Using machine learning and math-based algorithms, Federator.ai predicts containerized application and cluster node resource usage as the basis for resource recommendations at application level as well as at cluster node level. Federator.ai supports prediction for both physical/virtual CPUs and memories.
|
||||
|
||||
|
||||
**Auto-scaling via resource recommendation**
|
||||
|
||||
Federator.ai utilizes the predicted resource usage to recommend the right number and size of pods for applications. Integrated with Datadog's WPA, applications are automatically scaled to meet the predicted resource usage.
|
||||
|
||||
|
||||
**Application-aware recommendation execution**
|
||||
|
||||
Optimizing the resource usage and performance goals, Federator.ai uses application specific metrics for workload prediction and pod capacity estimation to auto-scale the right number of pods for best performance without overprovisioning.
|
||||
|
||||
|
||||
**Multi-cloud Cost Analysis**
|
||||
|
||||
With resource usage prediction, Federator.ai analyzes potential cost of a cluster on different public cloud providers. It also recommend appropriate cluster nodes and instance types based on resource usage.
|
||||
|
||||
|
||||
**Custom Datadog/Sysdig Dashboards**
|
||||
|
||||
Predefined custom Datadog/Sysdig Dashboards for workload prediction/recommendation visualization for cluster nodes and applications.
|
||||
|
||||
|
||||
**Additional resources**
|
||||
|
||||
Want more product information? Explore detailed information about using this product and where to find additional help.
|
||||
|
||||
* [Federator.ai Datasheet](https://prophetstor.com/wp-content/uploads/datasheets/Federator.ai.pdf)
|
||||
* [Quick Start Guide](https://prophetstor.com/wp-content/uploads/documentation/Federator.ai/Latest%20Version/ProphetStor%20Federator.ai%20Quick%20Installation%20Guide.pdf)
|
||||
* [Installation Guide](https://prophetstor.com/wp-content/uploads/2021/07/ProphetStor-Federator.ai-v4.6.1-Installation-Guide-v1.0.pdf)
|
||||
* [User Guide](https://prophetstor.com/wp-content/uploads/2021/07/Federator.ai-4.6.1-User-Guide.pdf)
|
||||
* [Company Information](https://www.prophetstor.com/)
|
||||
|
||||
## Prerequisites
|
||||
- The [Kubernetes](https://kubernetes.io/) version 1.18 or later if using Kubernetes environment.
|
||||
- The [Openshift](https://www.openshift.com) version 4.x.x or later if using OpenShift platform.
|
||||
- The [Helm](https://helm.sh/) version is 3.x.x or later.
|
||||
|
||||
## Add Helm chart repository
|
||||
```
|
||||
helm repo add prophetstor https://prophetstor-ai.github.io/federatorai-operator-helm/
|
||||
```
|
||||
|
||||
## Test the Helm chart repository
|
||||
```
|
||||
helm search repo federatorai
|
||||
```
|
||||
|
||||
## Installing with the release name `my-name`:
|
||||
```
|
||||
helm install `my-name` prophetstor/federatorai --namespace=federatorai --create-namespace
|
||||
```
|
||||
|
||||
## To uninstall/delete the `my-name` deployment:
|
||||
```
|
||||
helm ls --all-namespaces
|
||||
helm delete `my-name` --namespace=federatorai
|
||||
```
|
||||
|
||||
## To delete the Custom Resource Definitions (CRDs):
|
||||
```
|
||||
kubectl delete crd alamedaservices.federatorai.containers.ai
|
||||
```
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the chart and their default values are specfied insde values.yaml.
|
||||
|
||||
| Parameter | Description |
|
||||
| -------------------------------------------------------------- | --------------------------------------------- |
|
||||
| `image.pullPolicy` | Container pull policy |
|
||||
| `image.repository` | Image for Federator.ai operator |
|
||||
| `image.tag` | Image Tag for Federator.ai operator |
|
||||
| `federatorai.imageLocation` | Image Location for services containers |
|
||||
| `federatorai.version` | Image Tag for services containers |
|
||||
| `federatorai.persistence.enabled` | Enable persistent volumes |
|
||||
| `federatorai.persistence.storageClass` | Storage Class Name of persistent volumes |
|
||||
| `federatorai.persistence.storages.logStorage.size` | Log volume size |
|
||||
| `federatorai.persistence.aiCore.dataStorage.size` | AICore data volume size |
|
||||
| `federatorai.persistence.influxdb.dataStorage.size` | Influxdb data volume size |
|
||||
| `federatorai.persistence.fedemeterInfluxdb.dataStorage.size` | Fedemeter influxdb data volume size |
|
||||
| `services.dashboardFrontend.nodePort` | Port of the Dashboard service |
|
||||
| `services.rest.nodePort` | Port of the REST service |
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
|
||||
|
||||
```shell
|
||||
helm install `my-name` prophetstor/federatorai -f values.yaml --namespace=federatorai --create-namespace
|
||||
```
|
||||
|
||||
> **Tip**: You can use the default [values.yaml](values.yaml)
|
|
@ -0,0 +1,40 @@
|
|||
# <img src="https://raw.githubusercontent.com/prophetstor-ai/public/master/images/logo.png" width=60/> Federator.ai Operator
|
||||
Federator.ai helps enterprises optimize cloud resources, maximize application performance, and save significant cost without excessive over-provisioning or under-provisioning of resources, meeting the service-level requirements of their applications.
|
||||
|
||||
Enterprises often lack understanding of the resources needed to support their applications. This leads to either excessive over-provisioning or under-provisioning of resources (CPU, memory, storage). Using machine learning, Federator.ai determines the optimal cloud resources needed to support any workload on OpenShift and helps users find the best-cost instances from cloud providers for their applications.
|
||||
|
||||
|
||||
**Multi-layer workload prediction**
|
||||
|
||||
Using machine learning and math-based algorithms, Federator.ai predicts containerized application and cluster node resource usage as the basis for resource recommendations at application level as well as at cluster node level. Federator.ai supports prediction for both physical/virtual CPUs and memories.
|
||||
|
||||
|
||||
**Auto-scaling via resource recommendation**
|
||||
|
||||
Federator.ai utilizes the predicted resource usage to recommend the right number and size of pods for applications. Integrated with Datadog's WPA, applications are automatically scaled to meet the predicted resource usage.
|
||||
|
||||
|
||||
**Application-aware recommendation execution**
|
||||
|
||||
Optimizing the resource usage and performance goals, Federator.ai uses application specific metrics for workload prediction and pod capacity estimation to auto-scale the right number of pods for best performance without overprovisioning.
|
||||
|
||||
|
||||
**Multi-cloud Cost Analysis**
|
||||
|
||||
With resource usage prediction, Federator.ai analyzes potential cost of a cluster on different public cloud providers. It also recommend appropriate cluster nodes and instance types based on resource usage.
|
||||
|
||||
|
||||
**Custom Datadog/Sysdig Dashboards**
|
||||
|
||||
Predefined custom Datadog/Sysdig Dashboards for workload prediction/recommendation visualization for cluster nodes and applications.
|
||||
|
||||
|
||||
**Additional resources**
|
||||
|
||||
Want more product information? Explore detailed information about using this product and where to find additional help.
|
||||
|
||||
* [Federator.ai Datasheet](https://prophetstor.com/wp-content/uploads/datasheets/Federator.ai.pdf)
|
||||
* [Quick Start Guide](https://prophetstor.com/wp-content/uploads/documentation/Federator.ai/Latest%20Version/ProphetStor%20Federator.ai%20Quick%20Installation%20Guide.pdf)
|
||||
* [Installation Guide](https://prophetstor.com/wp-content/uploads/2021/07/ProphetStor-Federator.ai-v4.6.1-Installation-Guide-v1.0.pdf)
|
||||
* [User Guide](https://prophetstor.com/wp-content/uploads/2021/07/Federator.ai-4.6.1-User-Guide.pdf)
|
||||
* [Company Information](https://www.prophetstor.com/)
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,90 @@
|
|||
questions:
|
||||
#image configurations
|
||||
- variable: defaultImage
|
||||
default: true
|
||||
description: "Use default Federator.ai image or specify a custom one"
|
||||
label: Use Default Federator.ai Image
|
||||
type: boolean
|
||||
show_subquestion_if: false
|
||||
group: "Container Images"
|
||||
subquestions:
|
||||
- variable: image.repository
|
||||
default: "quay.io/prophetstor/federatorai-operator-ubi"
|
||||
description: "Federator.ai Operator image name"
|
||||
type: string
|
||||
group: "Container Images"
|
||||
label: Federator.ai Operator Image Name
|
||||
- variable: image.tag
|
||||
default: "v4.6.1-ga"
|
||||
description: "Federator.ai Operator image tag"
|
||||
type: string
|
||||
group: "Container Images"
|
||||
label: Federator.ai Operator Image Tag
|
||||
#service configurations
|
||||
- variable: federatorai.imageLocation
|
||||
default: "quay.io/prophetstor"
|
||||
description: "Service containers image location"
|
||||
type: string
|
||||
required: true
|
||||
group: "Container Images"
|
||||
label: Federator.ai imageLocation
|
||||
- variable: federatorai.version
|
||||
default: "v4.6.1-ga"
|
||||
description: "Service containers version"
|
||||
type: string
|
||||
required: true
|
||||
group: "Container Images"
|
||||
label: Service Containers Image Tag
|
||||
- variable: services.dashboardFrontend.nodePort
|
||||
required: true
|
||||
default: "31012"
|
||||
description: "The port where the Federator.ai Dashboard listens to"
|
||||
type: string
|
||||
group: "Service Settings"
|
||||
label: Federator.ai Dashboard Port
|
||||
- variable: services.rest.nodePort
|
||||
required: true
|
||||
default: "31011"
|
||||
description: "The port where the Federator.ai REST listens to"
|
||||
type: string
|
||||
group: "Service Settings"
|
||||
label: Federator.ai REST Port
|
||||
- variable: federatorai.persistence.enabled
|
||||
default: true
|
||||
description: "Enable persistent volume for Federator.ai"
|
||||
type: boolean
|
||||
required: true
|
||||
label: Federator.ai Persistent Volume Enabled
|
||||
show_subquestion_if: true
|
||||
group: "PV Settings"
|
||||
subquestions:
|
||||
- variable: federatorai.persistence.storageClass
|
||||
default: ""
|
||||
description: "If undefined or set to null, using the default storageClass. Defaults to null."
|
||||
type: storageclass
|
||||
group: "PV Settings"
|
||||
label: Storage Class for Federator.ai
|
||||
- variable: federatorai.persistence.storages.logStorage.size
|
||||
default: "2Gi"
|
||||
description: "Log volume size"
|
||||
type: string
|
||||
group: "PV Settings"
|
||||
label: Log Volume Size
|
||||
- variable: federatorai.persistence.aiCore.dataStorage.size
|
||||
default: "10Gi"
|
||||
description: "AICore data volume Size"
|
||||
type: string
|
||||
group: "PV Settings"
|
||||
label: AICore Data Volume Size
|
||||
- variable: federatorai.persistence.influxdb.dataStorage.size
|
||||
default: "100Gi"
|
||||
description: "Influxdb data volume Size"
|
||||
type: string
|
||||
group: "PV Settings"
|
||||
label: Influxdb Data Volume Size
|
||||
- variable: federatorai.persistence.fedemeterInfluxdb.dataStorage.size
|
||||
default: "10Gi"
|
||||
description: "Fedemeter influxdb data volume Size"
|
||||
type: string
|
||||
group: "PV Settings"
|
||||
label: Fedemeter Influxdb Data Volume Size
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: federatorai-operator
|
||||
namespace: {{ .Release.Namespace }}
|
|
@ -0,0 +1,101 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: federatorai-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
name: federatorai-operator
|
||||
app: Federator.ai
|
||||
annotations:
|
||||
"helm.sh/hook-weight": "1000"
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
type: RollingUpdate
|
||||
selector:
|
||||
matchLabels:
|
||||
name: federatorai-operator
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: federatorai-operator
|
||||
app: Federator.ai
|
||||
spec:
|
||||
securityContext:
|
||||
fsGroup: 1001
|
||||
serviceAccountName: federatorai-operator
|
||||
initContainers:
|
||||
- name: upgrader
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
command:
|
||||
- federatorai-operator
|
||||
args:
|
||||
- "upgrade"
|
||||
env:
|
||||
- name: NAMESPACE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: FEDERATORAI_OPERATOR_INFLUXDB_ADDRESS
|
||||
value: ""
|
||||
- name: FEDERATORAI_OPERATOR_INFLUXDB_SERVICE_NAME
|
||||
value: alameda-influxdb
|
||||
- name: FEDERATORAI_OPERATOR_INFLUXDB_SERVICE_PORT
|
||||
value: "8086"
|
||||
- name: FEDERATORAI_OPERATOR_INFLUXDB_USERNAME
|
||||
value: admin
|
||||
- name: FEDERATORAI_OPERATOR_INFLUXDB_PASSWORD
|
||||
value: adminpass
|
||||
volumeMounts:
|
||||
- mountPath: /var/log/alameda
|
||||
name: log
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
readOnly: true
|
||||
containers:
|
||||
- name: federatorai-operator
|
||||
# Replace this with the built image name
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||
command:
|
||||
- federatorai-operator
|
||||
env:
|
||||
- name: NAMESPACE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: OPERATOR_NAME
|
||||
value: "federatorai-operator"
|
||||
- name: DISABLE_OPERAND_RESOURCE_PROTECTION
|
||||
value: "false"
|
||||
- name: DEFAULT_KEYCODE
|
||||
value: "HIG3J-LCK2F-HOLHE-7G6HZ-TN3LW-E453A"
|
||||
readinessProbe:
|
||||
failureThreshold: 20
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8083
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 60
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
volumeMounts:
|
||||
- mountPath: /var/log/alameda
|
||||
name: log
|
||||
- mountPath: /tmp/k8s-webhook-server/serving-certs
|
||||
name: cert
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: log
|
||||
emptyDir: {}
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: federatorai-operator-service-cert
|
|
@ -0,0 +1,267 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: federatorai-operator
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- endpoints
|
||||
- pods
|
||||
verbs:
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- persistentvolumeclaims
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumes
|
||||
- pods/log
|
||||
- replicationcontrollers
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- resourcequotas
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
- extensions
|
||||
resources:
|
||||
- replicationcontrollers
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- analysis.containers.ai
|
||||
- autoscaling.containers.ai
|
||||
- federatorai.containers.ai
|
||||
- notifying.containers.ai
|
||||
- tenant.containers.ai
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- apps
|
||||
- extensions
|
||||
resources:
|
||||
- daemonsets
|
||||
- deployments/scale
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
- extensions
|
||||
resources:
|
||||
- deployments
|
||||
- replicasets
|
||||
- statefulsets
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apps.openshift.io
|
||||
resources:
|
||||
- deploymentconfigs
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- autoscaling
|
||||
resources:
|
||||
- horizontalpodautoscalers
|
||||
verbs:
|
||||
- list
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- cronjobs
|
||||
- jobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- policy
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- policy
|
||||
resourceNames:
|
||||
- federatorai-alameda-weave-scope
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
||||
- apiGroups:
|
||||
- monitoring.coreos.com
|
||||
resources:
|
||||
- prometheuses
|
||||
verbs:
|
||||
- list
|
||||
- apiGroups:
|
||||
- monitoring.coreos.com
|
||||
resources:
|
||||
- prometheusrules
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- apiGroups:
|
||||
- rbac.authorization.k8s.io
|
||||
resources:
|
||||
- clusterrolebindings
|
||||
- clusterroles
|
||||
- clusterroles/finalizers
|
||||
- rolebindings
|
||||
- roles
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- route.openshift.io
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- security.openshift.io
|
||||
resources:
|
||||
- securitycontextconstraints
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- use
|
||||
- watch
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- volumesnapshot.external-storage.k8s.io
|
||||
resources:
|
||||
- volumesnapshotdatas
|
||||
- volumesnapshots
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: alameda-gc
|
||||
annotations:
|
||||
"helm.sh/hook-weight": "5000"
|
||||
"helm.sh/hook": post-install,post-delete
|
||||
rules: []
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: federatorai-operator
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: federatorai-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: federatorai-operator
|
||||
apiGroup: rbac.authorization.k8s.io
|
|
@ -0,0 +1,107 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: federatorai-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- endpoints
|
||||
- events
|
||||
- persistentvolumeclaims
|
||||
- pods
|
||||
- secrets
|
||||
- services
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- persistentvolumeclaims
|
||||
- persistentvolumes
|
||||
- pods/log
|
||||
- replicationcontrollers
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- daemonsets
|
||||
- statefulsets
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- deployments/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- apps
|
||||
- extensions
|
||||
resources:
|
||||
- deployments
|
||||
- deployments/scale
|
||||
- replicasets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- cronjobs
|
||||
- jobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
resources:
|
||||
- deployments/scale
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- extensions
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- extensions
|
||||
resourceNames:
|
||||
- federatorai-alameda-weave-scope
|
||||
resources:
|
||||
- podsecuritypolicies
|
||||
verbs:
|
||||
- use
|
||||
- apiGroups:
|
||||
- monitoring.coreos.com
|
||||
resources:
|
||||
- servicemonitors
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- volumesnapshot.external-storage.k8s.io
|
||||
resources:
|
||||
- volumesnapshotdatas
|
||||
- volumesnapshots
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
|
@ -0,0 +1,13 @@
|
|||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: federatorai-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: federatorai-operator
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: federatorai-operator
|
||||
apiGroup: rbac.authorization.k8s.io
|
|
@ -0,0 +1,14 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
component: federatorai-operator
|
||||
name: federatorai-operator-service
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
targetPort: 50443
|
||||
selector:
|
||||
name: federatorai-operator
|
||||
app: Federator.ai
|
|
@ -0,0 +1,7 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: federatorai-operator-service-cert
|
||||
namespace: {{ .Release.Namespace }}
|
||||
data:
|
||||
type: Opaque
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: federatorai-operator-servicesmutation
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
name: federatorai-operator-service
|
||||
namespace: {{ .Release.Namespace }}
|
||||
path: /mutate-federatorai-containers-ai-v1alpha1-alamedaservice
|
||||
failurePolicy: Ignore
|
||||
name: alamedaservicemutate.federatorai.containers.ai
|
||||
rules:
|
||||
- apiGroups:
|
||||
- federatorai.containers.ai
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- alamedaservices
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: federatorai-operator-servicesvalidation
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
name: federatorai-operator-service
|
||||
namespace: {{ .Release.Namespace }}
|
||||
path: /validate-federatorai-containers-ai-v1alpha1-alamedaservice
|
||||
failurePolicy: Ignore
|
||||
name: alamedaservicevalidate.federatorai.containers.ai
|
||||
rules:
|
||||
- apiGroups:
|
||||
- federatorai.containers.ai
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- alamedaservices
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
Get the Federator.ai pods by running the following command:
|
||||
kubectl --namespace {{ .Release.Namespace }} get pods
|
|
@ -0,0 +1,45 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "federatorai-operator.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "federatorai-operator.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "federatorai-operator.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "federatorai-operator.labels" -}}
|
||||
app.kubernetes.io/name: {{ include "federatorai-operator.name" . }}
|
||||
helm.sh/chart: {{ include "federatorai-operator.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end -}}
|
|
@ -0,0 +1,87 @@
|
|||
apiVersion: federatorai.containers.ai/v1alpha1
|
||||
kind: AlamedaService
|
||||
metadata:
|
||||
name: my-alamedaservice
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
"helm.sh/hook": post-install
|
||||
"helm.sh/hook-weight": "3000"
|
||||
spec:
|
||||
keycode:
|
||||
codeNumber: ""
|
||||
{{ if .Values.federatorai.persistence.enabled }}
|
||||
env:
|
||||
- name: FEDERATORAI_MAXIMUM_LOG_SIZE
|
||||
## Use about 90% of 2Gi
|
||||
value: "1931476992"
|
||||
{{ end }}
|
||||
version: {{ .Values.federatorai.version }}
|
||||
{{ if .Values.federatorai.imageLocation }}
|
||||
imageLocation: {{ .Values.federatorai.imageLocation }}
|
||||
{{ else }}
|
||||
imageLocation: quay.io/prophetstor
|
||||
{{ end }}
|
||||
{{ if .Values.federatorai.persistence.enabled }}
|
||||
storages:
|
||||
- accessModes:
|
||||
- ReadWriteOnce
|
||||
{{ if .Values.federatorai.persistence.storageClass }}
|
||||
class: {{ .Values.federatorai.persistence.storageClass }}
|
||||
{{ end }}
|
||||
size: {{ .Values.federatorai.persistence.storages.logStorage.size }}
|
||||
type: pvc
|
||||
usage: log
|
||||
alamedaAi:
|
||||
storages:
|
||||
- accessModes:
|
||||
- ReadWriteOnce
|
||||
{{ if .Values.federatorai.persistence.storageClass }}
|
||||
class: {{ .Values.federatorai.persistence.storageClass }}
|
||||
{{ end }}
|
||||
size: {{ .Values.federatorai.persistence.aiCore.dataStorage.size }}
|
||||
type: pvc
|
||||
usage: data
|
||||
alamedaInfluxdb:
|
||||
storages:
|
||||
- accessModes:
|
||||
- ReadWriteOnce
|
||||
{{ if .Values.federatorai.persistence.storageClass }}
|
||||
class: {{ .Values.federatorai.persistence.storageClass }}
|
||||
{{ end }}
|
||||
size: {{ .Values.federatorai.persistence.influxdb.dataStorage.size }}
|
||||
type: pvc
|
||||
usage: data
|
||||
fedemeterInfluxdb:
|
||||
storages:
|
||||
- accessModes:
|
||||
- ReadWriteOnce
|
||||
{{ if .Values.federatorai.persistence.storageClass }}
|
||||
class: {{ .Values.federatorai.persistence.storageClass }}
|
||||
{{ end }}
|
||||
size: {{ .Values.federatorai.persistence.fedemeterInfluxdb.dataStorage.size }}
|
||||
type: pvc
|
||||
usage: data
|
||||
{{ else }}
|
||||
storages:
|
||||
- type: ephemeral
|
||||
usage: data
|
||||
- type: ephemeral
|
||||
usage: log
|
||||
{{ end }}
|
||||
serviceExposures:
|
||||
{{ if .Values.services.dashboardFrontend.nodePort }}
|
||||
- name: federatorai-dashboard-frontend
|
||||
nodePort:
|
||||
ports:
|
||||
- nodePort: {{ .Values.services.dashboardFrontend.nodePort }}
|
||||
port: 9001
|
||||
type: NodePort
|
||||
{{ end }}
|
||||
{{ if .Values.services.rest.nodePort }}
|
||||
- name: federatorai-rest
|
||||
nodePort:
|
||||
ports:
|
||||
- nodePort: {{ .Values.services.rest.nodePort }}
|
||||
port: 5056
|
||||
type: NodePort
|
||||
{{ end }}
|
|
@ -0,0 +1,41 @@
|
|||
## Default values for Federator.ai
|
||||
## This is a YAML-formatted file.
|
||||
## Declare variables to be passed into your templates.
|
||||
##
|
||||
image:
|
||||
pullPolicy: IfNotPresent
|
||||
repository: quay.io/prophetstor/federatorai-operator-ubi
|
||||
tag: v4.6.1-ga
|
||||
|
||||
## Set default values
|
||||
##
|
||||
federatorai:
|
||||
imageLocation: quay.io/prophetstor
|
||||
version: v4.6.1-ga
|
||||
## If thhe persistence is enabled, a default StorageClass
|
||||
## is needed in the k8s cluster to provision volumes.
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
storages:
|
||||
logStorage:
|
||||
size: 2Gi
|
||||
aiCore:
|
||||
dataStorage:
|
||||
size: 10Gi
|
||||
influxdb:
|
||||
dataStorage:
|
||||
size: 100Gi
|
||||
fedemeterInfluxdb:
|
||||
dataStorage:
|
||||
size: 10Gi
|
||||
|
||||
services:
|
||||
dashboardFrontend:
|
||||
## Specify the nodePort value for the dashboard frontend
|
||||
## Comment out the following line to disable nodePort service
|
||||
nodePort: 31012
|
||||
rest:
|
||||
## Specify the nodePort value for the REST service
|
||||
## Comment out the following line to disable nodePort service
|
||||
nodePort: 31011
|
31
index.yaml
31
index.yaml
|
@ -682,6 +682,37 @@ entries:
|
|||
- assets/falcon-sensor/falcon-sensor-0.9.300.tgz
|
||||
version: 0.9.300
|
||||
federatorai:
|
||||
- annotations:
|
||||
catalog.cattle.io/certified: partner
|
||||
catalog.cattle.io/display-name: Federator.ai
|
||||
catalog.cattle.io/release-name: federatorai
|
||||
apiVersion: v1
|
||||
appVersion: 4.6.1-ga
|
||||
created: "2021-08-25T15:38:01.813632995+08:00"
|
||||
description: Federator.ai helps enterprises optimize cloud resources, maximize
|
||||
application performance, and save significant cost without excessive over-provisioning
|
||||
or under-provisioning of resources, meeting the service-level requirements of
|
||||
their applications.
|
||||
digest: 6cb29d5820228325516adcbad6e7badfe094d8579675b10121b10ae5fccc3d5d
|
||||
home: https://www.prophetstor.com
|
||||
icon: https://raw.githubusercontent.com/prophetstor-ai/public/master/images/logo.png
|
||||
keywords:
|
||||
- AI
|
||||
- Resource Orchestration
|
||||
- NoOps
|
||||
- AIOps
|
||||
- Intelligent Workload Management
|
||||
- Cost Optimization
|
||||
kubeVersion: 1.11 - 1.21
|
||||
maintainers:
|
||||
- email: support@prophetstor.com
|
||||
name: ProphetStor Data Services, Inc.
|
||||
name: federatorai
|
||||
sources:
|
||||
- https://www.prophetstor.com
|
||||
urls:
|
||||
- assets/federatorai/federatorai-4.6.100.tgz
|
||||
version: 4.6.100
|
||||
- annotations:
|
||||
catalog.cattle.io/certified: partner
|
||||
catalog.cattle.io/display-name: Federator.ai
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
+++ charts/Chart.yaml
|
||||
@@ -1,5 +1,9 @@
|
||||
apiVersion: v1
|
||||
appVersion: 4.5.1-ga
|
||||
appVersion: 4.6.1-ga
|
||||
+annotations:
|
||||
+ catalog.cattle.io/certified: partner
|
||||
+ catalog.cattle.io/release-name: federatorai
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
url: https://github.com/prophetstor-ai/federatorai-operator-helm/raw/master/federatorai-4.5.1.tgz
|
||||
url: https://github.com/prophetstor-ai/federatorai-operator-helm/raw/master/federatorai-4.6.1.tgz
|
||||
packageVersion: 00
|
||||
|
|
Loading…
Reference in New Issue