Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: prometheus-k8s
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
rules:
- apiGroups:
- ""
resources:
- namespace/metrics
verbs:
- get
- apiGroups:
- ""
resources:
- services
- endpoints
- pods
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: prometheus-k8s
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: prometheus-k8s
subjects:
- kind: ServiceAccount
name: prometheus-k8s
namespace: openshift-monitoring
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: capi-machine-approver
name: cluster-machine-approver
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
interval: 30s
port: https
scheme: https
tlsConfig:
caFile: /etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt
serverName: capi-machine-approver.openshift-cluster-api.svc
namespaceSelector:
matchNames:
- openshift-cluster-api
selector:
matchLabels:
app: capi-machine-approver
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
prometheus: k8s
role: alert-rules
name: machineapprover-rules
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
spec:
groups:
- name: cluster-capi-machine-approver.rules
rules:
- alert: MachineApproverMaxPendingCSRsReached
expr: |
mapi_current_pending_csr > mapi_max_pending_csr
for: 5m
labels:
severity: warning
annotations:
summary: "max pending CSRs threshold reached."
description: |
The number of pending CertificateSigningRequests has exceeded the
maximum threshold (current number of machine + 100). Check the
pending CSRs to determine which machines need approval, also check
that the nodelink controller is running in the openshift-machine-api
namespace.
227 changes: 227 additions & 0 deletions manifests/0000_90_cluster-api_cluster-machine-approver_02_rbac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: openshift-cluster-api
name: capi-machine-approver-sa
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: capi-machine-approver
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
rules:
- apiGroups:
- "coordination.k8s.io"
resources:
- leases
verbs:
- get
- create
- update
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: capi-machine-approver
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: capi-machine-approver
subjects:
- kind: ServiceAccount
namespace: openshift-cluster-api
name: capi-machine-approver-sa

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: capi-machine-approver
namespace: openshift-config-managed
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
rules:
- apiGroups:
- ""
resources:
- configmaps
resourceNames:
- csr-controller-ca
verbs:
- get

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: capi-machine-approver
namespace: openshift-config-managed
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: capi-machine-approver
subjects:
- kind: ServiceAccount
namespace: openshift-cluster-api
name: capi-machine-approver-sa

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:openshift:controller:capi-machine-approver
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
rules:
- apiGroups:
- certificates.k8s.io
resources:
- certificatesigningrequests
verbs:
- get
- list
- watch
- apiGroups:
- certificates.k8s.io
resources:
- certificatesigningrequests/approval
verbs:
- update
- apiGroups:
- certificates.k8s.io
resourceNames:
- kubernetes.io/kube-apiserver-client-kubelet
- kubernetes.io/kubelet-serving
resources:
- signers
verbs:
- approve
- apiGroups:
- machine.openshift.io
resources:
- machines
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
- apiGroups:
- config.openshift.io
resources:
- clusteroperators
verbs:
- get
- create
- list
- watch
- apiGroups:
- config.openshift.io
resources:
- clusteroperators/status
resourceNames:
- capi-machine-approver
verbs:
- update
- apiGroups:
- config.openshift.io
resources:
- networks
verbs:
- get
- apiGroups:
- network.openshift.io
resources:
- hostsubnets
verbs:
- get
- apiGroups:
- cluster.x-k8s.io
resources:
- machines
verbs:
- get
- list
- watch

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system:openshift:controller:capi-machine-approver
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:openshift:controller:capi-machine-approver
subjects:
- kind: ServiceAccount
namespace: openshift-cluster-api
name: capi-machine-approver-sa
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kube-rbac-proxy
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
data:
config-file.yaml: |+
authorization:
resourceAttributes:
apiVersion: v1
resource: namespace
subresource: metrics
namespace: openshift-cluster-api
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: v1
kind: Service
metadata:
name: capi-machine-approver
namespace: openshift-cluster-api
annotations:
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
exclude.release.openshift.io/internal-openshift-hosted: "true"
release.openshift.io/feature-gate: "TechPreviewNoUpgrade"
service.alpha.openshift.io/serving-cert-secret-name: capi-machine-approver-tls
labels:
app: capi-machine-approver
spec:
type: ClusterIP
clusterIP: None
ports:
- name: https
port: 9192
targetPort: https
selector:
app: capi-machine-approver
sessionAffinity: None
Loading