Incorporates Minikube to devel environment

This commit is contained in:
Marcelo Moreira de Mello
2021-07-13 00:36:19 -04:00
parent 0e75193e3d
commit f6a71e770d
12 changed files with 241 additions and 5 deletions

View File

@@ -0,0 +1,42 @@
# Create Openshift/Kubernetes credential for Minikube
# This script gets called by the bootstrap_development process
# awx-manage shell_plus --quiet < bootstrap_minikube.py
from awx.main.utils.encryption import encrypt_field
NAME = 'Minikube'
POD_SPEC = """apiVersion: v1
kind: Pod
metadata:
namespace: {{ minikube_service_account_namespace }}
spec:
containers:
- image: 'quay.io/ansible/awx-ee:devel'
name: worker
args:
- ansible-runner
- worker
- '--private-data-dir=/runner'"""
# Creates Minikube credential
if not Credential.objects.filter(name=NAME).count():
cred = Credential()
cred.name = NAME
cred.credential_type = CredentialType.objects.get(name='OpenShift or Kubernetes API Bearer Token')
cred.description = 'Minikube Devel'
cred.inputs['host'] = 'https://minikube:8443'
cred.inputs['verify_ssl'] = False
cred.inputs['bearer_token'] = '{{ service_account_token }}'
encrypt_field(cred, 'bearer_token', secret_key=settings.SECRET_KEY)
cred.save()
# Create Container Group for Minikube
if not InstanceGroup.objects.filter(name=NAME).count():
ccgrp = InstanceGroup()
ccgrp.name = NAME
ccgrp.credential = cred
ccgrp.pod_spec_override = POD_SPEC
ccgrp.is_container_group = True
ccgrp.save()

View File

@@ -0,0 +1,38 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ minikube_service_account_name }}
namespace: {{ minikube_service_account_namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ minikube_service_account_name }}
namespace: {{ minikube_service_account_namespace }}
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get"]
- apiGroups: [""]
resources: ["pods/attach"]
verbs: ["create"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "create", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: {{ minikube_service_account_name }}
namespace: {{ minikube_service_account_namespace }}
subjects:
- kind: ServiceAccount
name: {{ minikube_service_account_name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ minikube_service_account_name }}