rbac-helm/playbooks/functional.yaml
okozachenko 2d65aa29fa Add service permission to member role
Change-Id: Iab5f566ce4cbadb1df6cfa1c57756b6c66e0e1e2
2020-08-05 15:39:15 +03:00

155 lines
5.1 KiB
YAML

---
# Copyright 2020 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- hosts: all
pre_tasks:
- name: Deploy a hpa for test
shell: |
cat <<EOF | kubectl apply -f-
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: test
namespace: kube-system
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: test
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 90
- name: Deploy cert-manager
shell: |
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.2/cert-manager.yaml
- name: Create a configmap for test
shell: |
cat <<EOF | kubectl apply -f-
apiVersion: v1
kind: ConfigMap
metadata:
name: test
data:
key: value
roles:
- name: helm-template
helm_release_name: rbac
helm_chart: charts/rbac
helm_wait_for_pods: false
helm_values_file: charts/rbac/test-values.yaml
- name: wait-for-pods
vars:
wait_for_pods_namespace: kube-system
tasks:
- import_tasks: tasks/setup-test-context.yaml
# List and get nodes
- name: Ensure listing nodes works
shell: kubectl --context=test get nodes
- name: Ensure getting a node works
shell: kubectl --context=test get $(kubectl get nodes -oname | head -1)
# List and get applications
- name: Ensure listing applications works
shell: kubectl --context=test get {{ item }}
loop:
- daemonsets
- deployments
- replicasets
- statefulsets
# TODO: Get applications
# List and get pods
- name: Ensure listing pods works
shell: kubectl --context=test -n kube-system get pods
- name: Ensure getting a pod works
shell: kubectl --context=test -n kube-system get $(kubectl -n kube-system get pods -oname | head -1)
# View logs for pods
- name: Ensure getting logs for a pod works
shell: kubectl --context=test -n kube-system logs $(kubectl -n kube-system get pods -oname | head -1)
# List and get hpas
- name: Ensure listing hpas works
shell: kubectl --context=test -n kube-system get hpa
- name: Ensure getting a hpa works
shell: kubectl --context=test -n kube-system get hpa test
# List and get pvcs
- name: Ensure listing pvcs
shell: kubectl --context=test -n kube-system get pvc
# List and get pvs
- name: Ensure listing pvs
shell: kubectl --context=test get pv
# List and get storageclasses
- name: Ensure listing sc
shell: kubectl --context=test get sc
# List and get metrics for nodes
- name: Ensure listing resources of nodes
command: kubectl --context=test top nodes
register: _nodes_metrics
until: _nodes_metrics is success
retries: 60
delay: 5
- name: Ensure getting resources of a node
shell: kubectl --context=test top node $(kubectl get nodes --no-headers=true -o=custom-columns='name:metadata.name' | head -1)
register: _node_metrics
until: _node_metrics is success
retries: 60
delay: 5
# List and get metrics for pods
- name: Ensure listing resources for pods in a namespace
shell: kubectl --context=test -n kube-system top pods
register: _pods_metrics
until: _pods_metrics is success
retries: 60
delay: 5
- name: Ensure getting resources for a pod
shell: kubectl --context=test -n kube-system top pod $(kubectl -n kube-system --no-headers=true get pods -o=custom-columns='name:metadata.name' | head -1)
register: _pod_metrics
until: _pod_metrics is success
retries: 60
delay: 5
# List and get namespaces
- name: Ensure listing namespaces works
shell: kubectl --context=test get namespace
- name: Ensure getting a namespace works
shell: kubectl --context=test get namespace default
# List and get certificates, orders, and challenges
- name: Ensure listing certificates works
shell: kubectl --context=test get {{ item }}
loop:
- certificates
- orders
- challenges
# List and get configmap
- name: Ensure listing configmaps works
shell: kubectl --context=test get configmaps
- name: Ensure getting a configmap works
shell: kubectl --context=test get configmap test
# List and get service
- name: Ensure listing services works
shell: kubectl --context=test get services
- name: Ensure getting a configmap works
shell: kubectl --context=test get service kubernetes