KubraGen生成器:Traefik 2
kg-traefik2的Python项目详细描述
KubraGen生成器:Traefik 2
kg_traefik2是用于部署KubraGen的生成器 Kubernetes的Traefik 2服务器。在
KubraGen是一个kubernetesyaml生成器库,它可以生成 配置使用Python编程语言的全部功能。在
- 网址:https://github.com/RangelReale/kg_traefik2
- 存储库:https://github.com/RangelReale/kg_traefik2.git
- 文档:https://kg_traefik2.readthedocs.org/
- PyPI:https://pypi.python.org/pypi/kg_traefik2
示例
fromkubragenimportKubraGenfromkubragen.constsimportPROVIDER_GOOGLE,PROVIDERSVC_GOOGLE_GKEfromkubragen.objectimportObjectfromkubragen.optionimportOptionRootfromkubragen.optionsimportOptionsfromkubragen.outputimportOutputProject,OD_FileTemplate,OutputFile_ShellScript,OutputFile_Kubernetes, \ OutputDriver_Printfromkubragen.providerimportProviderfromkg_traefik2importTraefik2Builder,Traefik2Options,Traefik2ConfigFile,Traefik2OptionsPortkg=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: traefik2#traefik2_config_file=Traefik2ConfigFile()traefik2_config=Traefik2Builder(kubragen=kg,options=Traefik2Options({'namespace':OptionRoot('namespaces.mon'),'basename':'mytraefik2','config':{'traefik_config':traefik2_config_file,'traefik_args':['--entrypoints.web.Address=:80','--entryPoints.metrics.address=:9090','--metrics.prometheus=true','--metrics.prometheus.entryPoint=metrics',],'ports':[Traefik2OptionsPort(name='web',port_container=80,port_service=80),Traefik2OptionsPort(name='metrics',port_container=9090,in_service=False),],},'kubernetes':{'resources':{'deployment':{'requests':{'cpu':'150m','memory':'300Mi'},'limits':{'cpu':'300m','memory':'450Mi'},},},}}))traefik2_config.ensure_build_names(traefik2_config.BUILD_CRD,traefik2_config.BUILD_ACCESSCONTROL,traefik2_config.BUILD_CONFIG,traefik2_config.BUILD_SERVICE)## OUTPUTFILE: traefik2-crd.yaml#file=OutputFile_Kubernetes('traefik2-crd.yaml')out.append(file)file.append(traefik2_config.build(traefik2_config.BUILD_CRD))shell_script.append(OD_FileTemplate(f'kubectl apply -f ${{FILE_{file.fileid}}}'))## OUTPUTFILE: traefik2-config.yaml#file=OutputFile_Kubernetes('traefik2-config.yaml')out.append(file)file.append(traefik2_config.build(traefik2_config.BUILD_ACCESSCONTROL,traefik2_config.BUILD_CONFIG))shell_script.append(OD_FileTemplate(f'kubectl apply -f ${{FILE_{file.fileid}}}'))## OUTPUTFILE: traefik2.yaml#file=OutputFile_Kubernetes('traefik2.yaml')out.append(file)file.append(traefik2_config.build(traefik2_config.BUILD_SERVICE))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'))
输出:
^{pr2}$学分
基于
作者
范围实数(rangelreale@gmail.com)
- 项目
标签: