KubraGen Builder: Ingress NGINX
Project description
KubraGen Builder: Ingress NGINX
kg_ingressnginx is a builder for KubraGen that deploys a Ingress NGINX server in Kubernetes.
KubraGen is a Kubernetes YAML generator library that makes it possible to generate configurations using the full power of the Python programming language.
- Website: https://github.com/RangelReale/kg_ingressnginx
- Repository: https://github.com/RangelReale/kg_ingressnginx.git
- Documentation: https://kg_ingressnginx.readthedocs.org/
- PyPI: https://pypi.python.org/pypi/kg_ingressnginx
Example
from kubragen import KubraGen
from kubragen.consts import PROVIDER_GOOGLE, PROVIDERSVC_GOOGLE_GKE
from kubragen.object import Object
from kubragen.options import Options
from kubragen.output import OutputProject, OD_FileTemplate, OutputFile_ShellScript, OutputFile_Kubernetes, \
OutputDriver_Print
from kubragen.provider import Provider
from kg_ingressnginx import IngressNGINXBuilder, IngressNGINXOptions
kg = KubraGen(provider=Provider(PROVIDER_GOOGLE, PROVIDERSVC_GOOGLE_GKE), options=Options({
'namespaces': {
'mon': 'app-monitoring',
},
}))
out = OutputProject(kg)
shell_script = OutputFile_ShellScript('create_gke.sh')
out.append(shell_script)
shell_script.append('set -e')
#
# OUTPUTFILE: app-namespace.yaml
#
file = OutputFile_Kubernetes('app-namespace.yaml')
file.append([
Object({
'apiVersion': 'v1',
'kind': 'Namespace',
'metadata': {
'name': 'app-monitoring',
},
}, name='ns-monitoring', source='app', instance='app')
])
out.append(file)
shell_script.append(OD_FileTemplate(f'kubectl apply -f ${{FILE_{file.fileid}}}'))
shell_script.append(f'kubectl config set-context --current --namespace=app-monitoring')
#
# SETUP: ingressnginx
#
ingressnginx_config = IngressNGINXBuilder(kubragen=kg, options=IngressNGINXOptions({
}))
ingressnginx_config.ensure_build_names(ingressnginx_config.BUILD_INGRESS)
#
# OUTPUTFILE: ingressnginx.yaml
#
file = OutputFile_Kubernetes('ingressnginx.yaml')
out.append(file)
file.append(ingressnginx_config.build(ingressnginx_config.BUILD_INGRESS))
shell_script.append(OD_FileTemplate(f'kubectl apply -f ${{FILE_{file.fileid}}}'))
#
# Write files
#
out.output(OutputDriver_Print())
# out.output(OutputDriver_Directory('/tmp/build-gke'))
Output:
****** BEGIN FILE: 001-app-namespace.yaml ********
apiVersion: v1
kind: Namespace
metadata:
name: app-monitoring
****** END FILE: 001-app-namespace.yaml ********
****** BEGIN FILE: 002-ingressnginx.yaml ********
apiVersion: v1
kind: Namespace
metadata:
name: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
helm.sh/chart: ingress-nginx-3.6.0
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 0.40.2
app.kubernetes.io/managed-by: Helm
<...more...>
****** END FILE: 002-ingressnginx.yaml ********
****** BEGIN FILE: create_gke.sh ********
#!/bin/bash
set -e
kubectl apply -f 001-app-namespace.yaml
kubectl config set-context --current --namespace=app-monitoring
kubectl apply -f 002-ingressnginx.yaml
****** END FILE: create_gke.sh ********
Credits
Based on
Author
Rangel Reale (rangelspam@gmail.com)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
kg_ingressnginx-0.7.3.tar.gz
(4.6 kB
view details)
Built Distribution
File details
Details for the file kg_ingressnginx-0.7.3.tar.gz
.
File metadata
- Download URL: kg_ingressnginx-0.7.3.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7bb7ec7776c6eb7a8dd09ce70c3c0e227c729831b98ebeb47e2d5d166bbe8c7 |
|
MD5 | 61b934508aa9b850f3634bc57d0e66f7 |
|
BLAKE2b-256 | 5b87ee1e93048f05408ec8ed2e96c436a75944567bce8965a2c38c2f1e81e094 |
File details
Details for the file kg_ingressnginx-0.7.3-py3-none-any.whl
.
File metadata
- Download URL: kg_ingressnginx-0.7.3-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb3f51d34fef4d25122c8f9ad74196220a345a879264b838ef2173b37451592d |
|
MD5 | de1233a6efd8bf80f8112b645ffa4822 |
|
BLAKE2b-256 | 96b5c7ec5e45ffe9ba47c0062f6bc114efaa5cc20ac8202315343508172875e6 |