Commit d081e3e7 by Jeremy Gustie

Base copy redskyops v0.1.1 to v0.1.2

parent fd3dbe7d
apiVersion: v1
appVersion: v1.1.1
description: |
An AIOps platform for deploying, scaling and managing containerized applications in Kubernetes environments.
home: https://redskyops.dev/
icon: file://../icon.png
name: redskyops
version: 0.1.1
maintainers:
- name: redskyops
email: info@redskyops.dev
# Red Sky Ops
## Chart Repository
The Red Sky Ops chart repository can be configured in Helm as follows:
```sh
helm repo add redsky https://redskyops.dev/charts/
helm repo update
```
## Installing the Chart
The Red Sky Ops manager can be installed using the Helm command:
```sh
helm install --namespace redsky-system --name redsky redsky/redskyops
```
The recommended namespace (`redsky-system`) and release name (`redsky`) are consistent with an install performed using the `redskyctl` tool (see the [install guide](https://redskyops.dev/docs/install/) for more information).
## Configuration
The following configuration options are available:
| Parameter | Description |
| -------------------- | ------------------------------------------------ |
| `redskyImage` | Docker image name |
| `redskyTag` | Docker image tag |
| `address` | Fully qualified URL of the remote server |
| `oauth2ClientID` | OAuth2 client identifier |
| `oauth2ClientSecret` | OAuth2 client secret |
| `oauth2TokenURL` | Override default OAuth2 token URL |
| `rbac.create` | Specify whether RBAC resources should be created |
# Red Sky Ops
Red Sky Ops is an AIOps platform for deploying and optimizing containerized applications in Kubernetes environments. It makes it easy for DevOps teams to manage the millions of possible combinations of application variables they're confronted when deploying applications. With Red Sky Ops, they can identify and implement the best settings for each application in any cloud environment. Red Sky Ops allows teams to streamline their application tuning process and have a centralized, organized view of their tuning results.
**Installation Note:**
It is recommended that you launch using the name **"redsky"**.
labels:
io.cattle.role: cluster # options are cluster/project
questions:
- variable: defaultImage
default: true
description: "Use default Docker image"
label: Use Default Image
type: boolean
show_subquestion_if: false
group: "Container Images"
subquestions:
- variable: redskyImage
default: "gcr.io/redskyops/k8s-experiment"
description: "Docker image name"
type: string
label: Image Name
- variable: redskyTag
default: "1.1.1"
description: "Docker image tag"
type: string
label: Image Tag
- variable: remoteServerEnabled
default: false
description: "Use a remote Red Sky Ops server"
label: Use Remote Server
type: boolean
show_subquestion_if: true
group: "Remote Server"
subquestions:
- variable: address
default: ""
description: "Fully qualified URL of the remote server"
type: string
label: Address
- variable: oauth2ClientID
default: ""
description: "OAuth2 client identifier"
type: string
label: Client ID
- variable: oauth2ClientSecret
default: ""
description: "OAuth2 client secret"
type: string
label: Client Secret
Red Sky Ops is ready to run within your cluster.
You may want to install the Red Sky Ops Tool (redskyctl) locally, see the install guide for more information:
https://redskyops.dev/docs/install/
This source diff could not be displayed because it is too large. You can view the blob instead.
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/port: "8443"
prometheus.io/scheme: https
prometheus.io/scrape: "true"
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
control-plane: controller-manager
name: "{{ .Release.Name }}-controller-manager-metrics-service"
spec:
ports:
- name: https
port: 8443
targetPort: https
selector:
app.kubernetes.io/name: redskyops
control-plane: controller-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
control-plane: controller-manager
name: "{{ .Release.Name }}-controller-manager"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: redskyops
control-plane: controller-manager
template:
metadata:
labels:
app.kubernetes.io/name: redskyops
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
control-plane: controller-manager
spec:
containers:
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=10
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.0
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
- args:
- --metrics-addr=127.0.0.1:8080
command:
- /manager
image: {{ .Values.redskyImage }}:{{ .Values.redskyTag }}
name: manager
resources:
limits:
cpu: 100m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsGroup: 65532
runAsNonRoot: true
runAsUser: 65532
volumeMounts:
- mountPath: /home/nonroot
name: client-config
readOnly: true
terminationGracePeriodSeconds: 10
volumes:
- name: client-config
secret:
items:
- key: client.yaml
path: .redsky
secretName: client-config
{{- if .Values.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
name: "{{ .Release.Name }}-manager-role"
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- patch
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- apiGroups:
- ""
resources:
- services
verbs:
- list
- apiGroups:
- apps
- extensions
resources:
- deployments
- statefulsets
verbs:
- get
- list
- patch
- apiGroups:
- batch
- extensions
resources:
- jobs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- batch
- extensions
resources:
- jobs/status
verbs:
- get
- patch
- update
- apiGroups:
- redskyops.dev
resources:
- experiments
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- redskyops.dev
resources:
- experiments/status
verbs:
- get
- patch
- update
- apiGroups:
- redskyops.dev
resources:
- trials
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- redskyops.dev
resources:
- trials/status
verbs:
- get
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
name: "{{ .Release.Name }}-proxy-role"
rules:
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
name: "{{ .Release.Name }}-manager-rolebinding"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: "{{ .Release.Name }}-manager-role"
subjects:
- kind: ServiceAccount
name: default
namespace: {{ .Release.Namespace | quote }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
name: "{{ .Release.Name }}-proxy-rolebinding"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: "{{ .Release.Name }}-proxy-role"
subjects:
- kind: ServiceAccount
name: default
namespace: {{ .Release.Namespace | quote }}
{{- end -}}
{{- define "client.config" }}
address: {{ .Values.address | quote }}
oauth2:
client_id: {{ .Values.oauth2ClientID | quote }}
client_secret: {{ .Values.oauth2ClientSecret | quote }}
token_url: {{ .Values.oauth2TokenURL | quote }}
{{- end }}
apiVersion: v1
kind: Secret
metadata:
name: client-config
labels:
app.kubernetes.io/name: redskyops
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
type: Opaque
data:
client.yaml: {{ include "client.config" . | b64enc }}
# Override the Red Sky manager image name and tag
redskyImage: "gcr.io/redskyops/k8s-experiment"
redskyTag: "1.1.1"
# Configure the Red Sky server address
address: ""
# Red Sky server client identifier and secret
oauth2ClientID: ""
oauth2ClientSecret: ""
# Override the Red Sky server token URL, this is not typically necessary
oauth2TokenURL: ""
rbac:
# Specifies whether RBAC resources should be created
create: true
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment