blob: 44035857c54135c4793898e75c8d75452cd16e07 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/jkube/styles.5c9b852c43e28f117cb7.css">@import url(https://fonts.googleapis.com/css?family=Libre+Franklin:100,300,400,600,700,|Roboto:300,400,500,700|Jura);@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css);@import url(https://unpkg.com/@coreui/icons/css/brand.min.css);code[class*=language-],pre[class*=language-]{color:#657b83;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{background:#073642}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdf6e3}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#93a1a1}.token.punctuation{color:#586e75}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#268bd2}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string,.token.url{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#859900}.token.class-name,.token.function{color:#b58900}.token.important,.token.regex,.token.variable{color:#cb4b16}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body,html{font-family:Libre Franklin,Roboto,sans-serif}body{margin:0;padding:0;outline:0;background:#f1f2f2;font-size:16px;color:#222}h1{font-size:3rem}h1,h2{margin-top:0;font-family:Roboto,sans-serif;font-weight:300}h2{font-size:2rem}h3{font-size:1.5rem;font-weight:300}a{color:#525c86}a:focus,a:hover{color:#222}.eclipse-jkube-footer{padding:16px;border-top:10px solid #222;background-color:#292c2f;font-size:19.2px;font-family:Roboto,sans-serif;font-weight:300;line-height:1.5}.eclipse-jkube-footer .eclipse-jkube-footer__logo-jkube{display:flex;flex-direction:column;max-width:1170px;margin:0 auto 16px}.eclipse-jkube-footer .eclipse-jkube-footer__logo-jkube .eclipse-jkube-footer__logo-jkube-image{width:160px}.eclipse-jkube-footer .eclipse-jkube-footer__logo-jkube .eclipse-jkube-footer__logo-jkube-tagline{color:#939598}.eclipse-jkube-footer .eclipse-jkube-footer__links{max-width:1170px;margin:0 auto 16px;display:flex;flex-wrap:wrap}.eclipse-jkube-footer .eclipse-jkube-footer__links .eclipse-jkube-footer__links-list{padding:0;margin:0 48px 16px 0;list-style:none}.eclipse-jkube-footer .eclipse-jkube-footer__links .eclipse-jkube-footer__links-list li a{transition:color .1s linear;color:#f1f2f2}.eclipse-jkube-footer .eclipse-jkube-footer__links .eclipse-jkube-footer__links-list li:first-child a,.eclipse-jkube-footer .eclipse-jkube-footer__links .eclipse-jkube-footer__links-list li a:hover{color:#939598}.eclipse-jkube-footer .eclipse-jkube-footer__links .eclipse-jkube-footer__links-list li:first-child a:hover{color:#525c86}.eclipse-jkube-footer .eclipse-jkube-footer__links a{text-decoration:none}.eclipse-jkube-footer .eclipse-jkube-footer__copyright{max-width:1170px;margin:0 auto 16px;font-family:Roboto,sans-serif;color:#939598}.eclipse-jkube__header{display:block;position:relative;height:175px;background-color:#292c2f}@media (min-width:700px){.eclipse-jkube__header{height:105px}}.eclipse-jkube__header .eclipse-jkube__header-trade-mark{font-size:.5em;font-size:.3em;line-height:2.5;vertical-align:top}.eclipse-jkube__header .eclipse-jkube__header-container{position:relative;margin:0 auto;padding:0 16px;height:100%;max-width:1170px}@media (min-width:700px){.eclipse-jkube__header .eclipse-jkube__header-container{display:flex;flex-wrap:nowrap;height:105px}}.eclipse-jkube__header .eclipse-jkube__header-logo{display:flex;justify-content:center;align-items:center;font-size:32px;font-weight:400;color:#f1f2f2}@media (min-width:501px){.eclipse-jkube__header .eclipse-jkube__header-logo{font-size:50px}}.eclipse-jkube__header .eclipse-jkube__header-logo-eclipse-image{height:65px}@media (min-width:501px){.eclipse-jkube__header .eclipse-jkube__header-logo-eclipse-image{height:90px}}.eclipse-jkube__header .eclipse-jkube__header-logo-eclipse-image img{max-height:100%;max-width:100%}.eclipse-jkube__header .eclipse-jkube__header-logo-jkube{height:50px}@media (min-width:501px){.eclipse-jkube__header .eclipse-jkube__header-logo-jkube{height:65px}}.eclipse-jkube__header .eclipse-jkube__header-logo-jkube-image{height:100%}.eclipse-jkube__header .eclipse-jkube__header-logo:hover{color:#f1f2f2}.eclipse-jkube__header .eclipse-jkube__header-content{flex:1 0;min-width:1px;display:flex;justify-content:center;align-items:center}@media (min-width:501px){.eclipse-jkube__header .eclipse-jkube__header-content{justify-content:flex-end}}.eclipse-jkube__header .eclipse-jkube__header-content ul{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}@media (min-width:700px){.eclipse-jkube__header .eclipse-jkube__header-content ul{justify-content:flex-start}}.eclipse-jkube__header .eclipse-jkube__header-content ul li{margin:4px 0;padding-right:16px;list-style:none;color:#f1f2f2;font-size:20px}.eclipse-jkube__header .eclipse-jkube__header-content .eclipse-jkube__header-stars{display:block;width:85px;height:20px;line-height:20px}.eclipse-jkube__header a{color:#f1f2f2;text-decoration:none}.eclipse-jkube__header a:hover{color:#dd8623;transition:color .3s}.quick-start-card{border:1px solid #d6d6d6;padding:16px}.quick-start-card .quick-start-card__title{margin:0;padding:0}.quick-start-card .quick-start-card__title a{text-decoration:none}.quick-start-card .quick-start-card__title a:active,.quick-start-card .quick-start-card__title a:hover{text-decoration:underline}.quick-start-card .quick-start-card__technologies{margin:16px 0 0;padding:0}.quick-start-card .quick-start-card__technologies-item{display:inline-flex;align-items:center;padding:.25rem .3rem;border-radius:.2rem;font-size:.8rem;margin:0 0 .5rem;background:#dd8623;color:#222}.quick-start-card .quick-start-card__technologies-item:not(:last-child){margin-right:.5rem}.quick-start-card .quick-start-card__technologies-item-icon{display:inline-block;height:.8rem;margin-right:.2rem}.quick-start-card .quick-start-card__description p{margin-top:0}.quick-start-card .quick-start-card__links a{display:inline-block;text-decoration:none;padding:.3rem .5rem;border-radius:.2rem;border:1px solid #d6d6d6;background:#d6d6d6;color:#222}.quick-start-card .quick-start-card__links a:active,.quick-start-card .quick-start-card__links a:hover{background-color:#f1f2f2}.eclipse-jkube{display:flex;flex-direction:column;min-height:100vh}.eclipse-jkube__main{flex:1 1}@media (min-width:1170px){.eclipse-jkube__main{overflow-x:hidden}}.eclipse-jkube__main .eclipse-jkube__content{margin:0 16px}@media (min-width:1170px){.eclipse-jkube__main .eclipse-jkube__content{max-width:1154px;margin:0 auto}}.eclipse-jkube__main .eclipse-jkube__content img{max-width:100%}.eclipse-jkube__main .eclipse-jkube__content :not(pre)>code[class*=language-],.eclipse-jkube__main .eclipse-jkube__content pre[class*=language-]{background-color:transparent}.eclipse-jkube__main .eclipse-jkube__content .hero{margin:0 -16px 16px;display:block;background-color:#272727;background-image:url(/jkube/static/cubes-8e1e59c337437947105e6668f1f3790a.jpg);background-size:cover;color:#f1f2f2}@media (min-width:1170px){.eclipse-jkube__main .eclipse-jkube__content .hero{position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}}.eclipse-jkube__main .eclipse-jkube__content .hero .hero-content{padding:16px;background-color:rgba(39,39,39,.7)}@media (min-width:1170px){.eclipse-jkube__main .eclipse-jkube__content .hero .hero-content{padding:16px calc((100% - 1170px)/2)}}.eclipse-jkube__main .eclipse-jkube__content .hero .hero-content .getting-involved{color:#f1f2f2;margin:0 -16px;padding:0 16px;display:flex;justify-content:flex-end}.eclipse-jkube__main .eclipse-jkube__content .hero .hero-content h1{font-size:2.5rem;font-family:Libre Franklin,Roboto,sans-serif;font-weight:400}.eclipse-jkube__main .eclipse-jkube__content .section-dark{background-color:#404040;color:#f1f2f2;margin:0 -16px;padding:16px}@media (min-width:1170px){.eclipse-jkube__main .eclipse-jkube__content .section-dark{position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;padding:16px calc((100% - 1170px)/2)}}@media (min-width:1170px){.eclipse-jkube__main .eclipse-jkube__content .section-dark>*{padding:0 calc((100% - 1170px)/2)}}.eclipse-jkube__main .eclipse-jkube__content .highlight{display:flex;align-items:center}.eclipse-jkube__main .eclipse-jkube__content .highlight>p{margin:16px 32px;display:none}@media (min-width:501px){.eclipse-jkube__main .eclipse-jkube__content .highlight>p{display:block}}.eclipse-jkube__main .eclipse-jkube__content .highlight>p img{max-width:100px}.eclipse-jkube__main .eclipse-jkube__content .highlight-description{flex:1 1;min-width:1px}.eclipse-jkube__main .eclipse-jkube__content .highlight ul{flex:1 1;min-width:1px;margin:0;padding:0}.eclipse-jkube__main .eclipse-jkube__content .highlight li{list-style:none;margin:16px 0}.eclipse-jkube__main .eclipse-jkube__content .calendar{position:relative;overflow:hidden;padding-bottom:75%;margin-bottom:16px}@media (min-width:666.66667px){.eclipse-jkube__main .eclipse-jkube__content .calendar{padding-bottom:0;height:500px}}.eclipse-jkube__main .eclipse-jkube__content .calendar iframe{position:absolute;top:0;height:100%;max-height:500px;width:100%}.eclipse-jkube__documentation{margin:0}@media screen and (min-width:768px){.eclipse-jkube__documentation{position:absolute;top:105px;bottom:0;width:100%;overflow:auto}}.eclipse-jkube__documentation .eclipse-jkube__documentation-content{position:relative;padding:16px;overflow:hidden}.eclipse-jkube__documentation .eclipse-jkube__documentation-content article,.eclipse-jkube__documentation .eclipse-jkube__documentation-content aside,.eclipse-jkube__documentation .eclipse-jkube__documentation-content details,.eclipse-jkube__documentation .eclipse-jkube__documentation-content figcaption,.eclipse-jkube__documentation .eclipse-jkube__documentation-content figure,.eclipse-jkube__documentation .eclipse-jkube__documentation-content footer,.eclipse-jkube__documentation .eclipse-jkube__documentation-content header,.eclipse-jkube__documentation .eclipse-jkube__documentation-content hgroup,.eclipse-jkube__documentation .eclipse-jkube__documentation-content main,.eclipse-jkube__documentation .eclipse-jkube__documentation-content nav,.eclipse-jkube__documentation .eclipse-jkube__documentation-content section{display:block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content audio,.eclipse-jkube__documentation .eclipse-jkube__documentation-content video{display:inline-block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content audio:not([controls]){display:none;height:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a{background:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a:focus{outline:thin dotted}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a:active,.eclipse-jkube__documentation .eclipse-jkube__documentation-content a:hover{outline:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1{font-size:2em;margin:.67em 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content abbr[title]{border-bottom:1px dotted}.eclipse-jkube__documentation .eclipse-jkube__documentation-content dfn{font-style:italic}.eclipse-jkube__documentation .eclipse-jkube__documentation-content hr{box-sizing:content-box}.eclipse-jkube__documentation .eclipse-jkube__documentation-content mark{background:#ff0;color:#000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content code,.eclipse-jkube__documentation .eclipse-jkube__documentation-content kbd,.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre,.eclipse-jkube__documentation .eclipse-jkube__documentation-content samp{font-family:monospace;font-size:1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre{white-space:pre-wrap}.eclipse-jkube__documentation .eclipse-jkube__documentation-content q{quotes:"\201C" "\201D" "\2018" "\2019"}.eclipse-jkube__documentation .eclipse-jkube__documentation-content small{font-size:80%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content sub,.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup{top:-.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content sub{bottom:-.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content img{border:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content svg:not(:root){overflow:hidden}.eclipse-jkube__documentation .eclipse-jkube__documentation-content figure{margin:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content legend{border:0;padding:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content button,.eclipse-jkube__documentation .eclipse-jkube__documentation-content input,.eclipse-jkube__documentation .eclipse-jkube__documentation-content select,.eclipse-jkube__documentation .eclipse-jkube__documentation-content textarea{font-family:inherit;font-size:100%;margin:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content button,.eclipse-jkube__documentation .eclipse-jkube__documentation-content input{line-height:normal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content button,.eclipse-jkube__documentation .eclipse-jkube__documentation-content select{text-transform:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content button,.eclipse-jkube__documentation .eclipse-jkube__documentation-content html input[type=button],.eclipse-jkube__documentation .eclipse-jkube__documentation-content input[type=reset],.eclipse-jkube__documentation .eclipse-jkube__documentation-content input[type=submit]{-webkit-appearance:button;cursor:pointer}.eclipse-jkube__documentation .eclipse-jkube__documentation-content button[disabled],.eclipse-jkube__documentation .eclipse-jkube__documentation-content html input[disabled]{cursor:default}.eclipse-jkube__documentation .eclipse-jkube__documentation-content input[type=checkbox],.eclipse-jkube__documentation .eclipse-jkube__documentation-content input[type=radio]{box-sizing:border-box;padding:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content button::-moz-focus-inner,.eclipse-jkube__documentation .eclipse-jkube__documentation-content input::-moz-focus-inner{border:0;padding:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content textarea{overflow:auto;vertical-align:top}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table{border-collapse:collapse;border-spacing:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content *,.eclipse-jkube__documentation .eclipse-jkube__documentation-content :after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content :before{box-sizing:border-box}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body,.eclipse-jkube__documentation .eclipse-jkube__documentation-content html{font-size:100%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a:hover{cursor:pointer}.eclipse-jkube__documentation .eclipse-jkube__documentation-content embed,.eclipse-jkube__documentation .eclipse-jkube__documentation-content img,.eclipse-jkube__documentation .eclipse-jkube__documentation-content object{max-width:100%;height:auto}.eclipse-jkube__documentation .eclipse-jkube__documentation-content embed,.eclipse-jkube__documentation .eclipse-jkube__documentation-content object{height:100%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content img{-ms-interpolation-mode:bicubic}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .left{float:left!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .right{float:right!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .text-left{text-align:left!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .text-right{text-align:right!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .text-center{text-align:center!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .text-justify{text-align:justify!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hide{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content img,.eclipse-jkube__documentation .eclipse-jkube__documentation-content object,.eclipse-jkube__documentation .eclipse-jkube__documentation-content svg{display:inline-block;vertical-align:middle}.eclipse-jkube__documentation .eclipse-jkube__documentation-content textarea{height:auto;min-height:50px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content select{width:100%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .center{margin-left:auto;margin-right:auto}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .stretch{width:100%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .audioblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .dlist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hdlist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .olist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .openblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .paragraph>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .qlist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .stemblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .subheader,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .ulist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .videoblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.tableblock>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dd,.eclipse-jkube__documentation .eclipse-jkube__documentation-content div,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content form,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6,.eclipse-jkube__documentation .eclipse-jkube__documentation-content li,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol,.eclipse-jkube__documentation .eclipse-jkube__documentation-content p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul{margin:0;padding:0;direction:ltr}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a{color:#2156a5;text-decoration:underline;line-height:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a:focus,.eclipse-jkube__documentation .eclipse-jkube__documentation-content a:hover{color:#1d4b8f}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a img{border:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p aside{font-size:.875em;line-height:1.35;font-style:italic}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6{font-family:Open Sans,DejaVu Sans,sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1 small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2 small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3 small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4 small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5 small,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6 small{font-size:60%;color:#e99b8f;line-height:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1{font-size:2.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2{font-size:1.6875em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3{font-size:1.375em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5{font-size:1.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6{font-size:1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content em,.eclipse-jkube__documentation .eclipse-jkube__documentation-content i{font-style:italic;line-height:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content b,.eclipse-jkube__documentation .eclipse-jkube__documentation-content strong{font-weight:700;line-height:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content small{font-size:60%;line-height:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content code{font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;font-weight:400;color:rgba(0,0,0,.9)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul{margin-left:1.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul li ol,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul li ul{margin-left:1.25em;margin-bottom:0;font-size:1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.circle li ul,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.disc li ul,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.square li ul{list-style:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.square{list-style-type:square}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.circle{list-style-type:circle}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.disc{list-style-type:disc}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol li ol,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol li ul{margin-left:1.25em;margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl dt{margin-bottom:.3125em;font-weight:700}.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl dd{margin-bottom:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content abbr,.eclipse-jkube__documentation .eclipse-jkube__documentation-content acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}.eclipse-jkube__documentation .eclipse-jkube__documentation-content abbr{text-transform:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote cite:before{content:"\2014 "}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote cite a,.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote cite a:visited{color:rgba(0,0,0,.6)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}@media screen and (min-width:768px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6{line-height:1.2}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1{font-size:2.75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2{font-size:2.3125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3{font-size:1.6875em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4{font-size:1.4375em}}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tfoot,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table thead{background:#f7f8f7}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tfoot tr td,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tfoot tr th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table thead tr td,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table thead tr th{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tr td,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tr th{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tr.alt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tr.even{background:#f8f8f7}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tbody tr td,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tfoot tr td,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tfoot tr th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table thead tr th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tr td{display:table-cell;line-height:1.6}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6{line-height:1.2;word-spacing:-.05em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1 strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2 strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3 strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4 strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5 strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6 strong{font-weight:400}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .clearfix:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .clearfix:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .float-group:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .float-group:before{content:" ";display:table}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .clearfix:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .float-group:after{clear:both}.eclipse-jkube__documentation .eclipse-jkube__documentation-content :not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}.eclipse-jkube__documentation .eclipse-jkube__documentation-content :not(pre)>code.nobreak{word-wrap:normal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content :not(pre)>code.nowrap{white-space:nowrap}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre{color:rgba(0,0,0,.9);font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;line-height:1.45;text-rendering:optimizeSpeed}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre code,.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre pre{color:inherit;font-size:inherit;line-height:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre>code{display:block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.nowrap,.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.nowrap pre{white-space:pre;word-wrap:normal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content em em{font-style:normal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content strong strong{font-weight:400}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .keyseq{color:rgba(51,51,51,.8)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content kbd{font-family:Droid Sans Mono,DejaVu Sans Mono,monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .keyseq kbd:first-child{margin-left:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .keyseq kbd:last-child{margin-right:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuref,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuseq{color:#000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuref,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuseq b:not(.caret){font-weight:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuseq{word-spacing:-.02em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuseq b.caret{font-size:1.25em;line-height:.8}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .menuseq i.caret{font-weight:700;text-align:center;width:.45em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content b.button:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content b.button:before{position:relative;top:-1px;font-weight:400}.eclipse-jkube__documentation .eclipse-jkube__documentation-content b.button:before{content:"[";padding:0 3px 0 2px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content b.button:after{content:"]";padding:0 2px 0 3px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p a>code:hover{color:rgba(0,0,0,.9)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header:before{content:" ";display:table}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes:after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header:after{clear:both}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content{margin-top:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content:before{content:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header>h1:only-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details span:first-child{margin-left:-.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details span.email a{color:rgba(0,0,0,.85)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details br{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details br+span:before{content:"\A0\2013\A0"}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details br+span.author:before{content:"\A0\22C5\A0";color:rgba(0,0,0,.85)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header .details br+span#revremark:before{content:"\A0|\A0"}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header #revnumber{text-transform:capitalize}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header #revnumber:after{content:"\A0"}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc>ul{margin-left:.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc ul.sectlevel0>li>a{font-style:italic}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc ul{font-family:Open Sans,DejaVu Sans,sans-serif;list-style-type:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc li{line-height:1.3334;margin-top:.3334em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc a{text-decoration:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc a:active{text-decoration:underline}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle{color:#7a2518;font-size:1.2em}@media screen and (min-width:768px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle{font-size:1.375em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.toc2{padding-left:15em;padding-right:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2>ul{font-size:.9em;margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2 ul ul{margin-left:0;padding-left:1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.toc2.toc-right{padding-left:0;padding-right:15em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}@media screen and (min-width:1280px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.toc2{padding-left:20em;padding-right:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2{width:20em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2 #toctitle{font-size:1.375em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2>ul{font-size:.95em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc.toc2 ul ul{padding-left:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.toc2.toc-right{padding-left:0;padding-right:20em}}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content #toc>:first-child{margin-top:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content #toc>:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content{margin-bottom:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sect1{padding-bottom:.625em}@media screen and (min-width:768px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content{margin-bottom:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sect1{padding-bottom:1.25em}}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sect1:last-child{padding-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sect1+.sect1{border-top:1px solid #e7e7e9}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content h1>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content h1>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5>a.anchor:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6>a.anchor:before{content:"\A7";font-size:.85em;display:block;padding-top:.1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content h1:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content h1>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5>a.anchor:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6:hover>a.anchor,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6>a.anchor:hover{visibility:visible}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content h1>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5>a.link,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6>a.link{color:#ba3925;text-decoration:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content h1>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h4>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h5>a.link:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h6>a.link:hover{color:#a53221}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .audioblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .stemblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .videoblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content details{margin-bottom:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .audioblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .dlist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hdlist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .olist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .openblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .paragraph>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .qlist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .stemblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .ulist>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .videoblock>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.tableblock>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #preamble>.sectionbody>[class=paragraph]:first-of-type p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .paragraph.lead>p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.tableblock #preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock>table td.icon{text-align:center;width:80px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock>table td.icon img{max-width:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock>table td.icon .title{font-weight:700;font-family:Open Sans,DejaVu Sans,sans-serif;text-transform:uppercase}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content>:first-child{margin-top:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content>:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>:first-child{margin-top:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content .olist>ol>li:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content .qlist>ol>li:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content .ulist>ul>li:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content>:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content .olist>ol>li:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content .qlist>ol>li:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content .ulist>ul>li:last-child>:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>:last-child>:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content>pre,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock pre{border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}@media screen and (min-width:768px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content>pre,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock pre{font-size:.90625em}}@media screen and (min-width:1280px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content>pre,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock pre{font-size:1em}}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content>pre:not(.highlight),.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content>pre[class=highlight],.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content>pre[class^="highlight "],.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock pre{background:#f7f7f8}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock>.content{position:relative}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock:hover code[data-lang]:before{display:block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock pre.highlightjs{padding:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock pre.highlightjs>code{padding:1em;border-radius:4px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock pre.prettyprint{border-width:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .prettyprint{background:#f7f7f8}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.prettyprint .linenums{line-height:1.45;margin-left:2em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.prettyprint li code[data-lang]:before{opacity:1}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.prettyprint li:not(:first-child) code[data-lang]:before{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.linenotable td.code{padding-left:.75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre.pygments .lineno:before{content:"";margin-right:-.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock{margin:0 1em 1.25em 1.5em;display:table}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock blockquote{margin:0;padding:0;border:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock blockquote:before{content:"\201C";float:left;font-size:2.75em;font-weight:700;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock{margin:0 1em 1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock pre{font-family:Open Sans,DejaVu Sans,sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock pre strong{font-weight:400}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .attribution,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .attribution br,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock .attribution br{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .attribution cite,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.abstract blockquote:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt blockquote:before,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock blockquote:before{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.abstract blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.abstract p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock p{line-height:1.6;word-spacing:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.abstract{margin:0 1em 1.25em;display:block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt>blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock{margin-left:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock.excerpt .attribution,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.tableblock{max-width:100%;border-collapse:separate}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p.tableblock:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.tableblock>.content>:last-child{margin-bottom:-1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.tableblock{border:0 solid #dedede}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-all>tbody>tr>.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-all>thead>tr>.tableblock{border-width:0 1px 1px 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-rows>tbody>tr>.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-rows>thead>tr>.tableblock{border-width:0 0 1px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-all>*>tr>.tableblock:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-all>tbody>tr:last-child>.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-all>thead:last-child>tr>.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-rows>tbody>tr:last-child>.tableblock,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.frame-all{border-width:1px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.frame-sides{border-width:0 1px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.frame-ends,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.frame-topbot{border-width:1px 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.stripes-all tr,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.stripes-even tr:nth-of-type(2n),.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.stripes-hover tr:hover,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table.stripes-odd tr:nth-of-type(odd){background:#f8f8f7}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.halign-left,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.halign-left{text-align:left}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.halign-right,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.halign-right{text-align:right}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.halign-center,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.halign-center{text-align:center}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.valign-top,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.valign-top{vertical-align:top}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.valign-bottom,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.valign-bottom{vertical-align:bottom}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.valign-middle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.valign-middle{vertical-align:middle}.eclipse-jkube__documentation .eclipse-jkube__documentation-content table tfoot th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content table thead th{font-weight:700}.eclipse-jkube__documentation .eclipse-jkube__documentation-content tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}.eclipse-jkube__documentation .eclipse-jkube__documentation-content tbody tr th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content tbody tr th p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content tfoot tr th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content tfoot tr th p{color:rgba(0,0,0,.8);font-weight:700}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p.tableblock>code:only-child{background:none;padding:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p.tableblock{font-size:1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol{margin-left:1.75em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul li ol{margin-left:1.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl dd{margin-left:1.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl dd:last-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dl dd:last-child>:last-child{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .olist .olist,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .olist .ulist,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .ulist .olist,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .ulist .ulist,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol>li p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol dd,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul>li p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul dd{margin-bottom:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.no-bullet,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.none,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.unnumbered,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.unstyled,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.checklist,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.no-bullet,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.none,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.unstyled{list-style-type:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.no-bullet,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.unnumbered,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.no-bullet{margin-left:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.unstyled,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.unstyled{margin-left:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.checklist{margin-left:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.checklist li>p:first-child>.fa-check-square-o:first-child,.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.checklist li>p:first-child>.fa-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.checklist li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ul.inline>li{margin-left:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .unstyled dl dt{font-weight:400;font-style:normal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.arabic{list-style-type:decimal}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.decimal{list-style-type:decimal-leading-zero}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.loweralpha{list-style-type:lower-alpha}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.upperalpha{list-style-type:upper-alpha}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.lowerroman{list-style-type:lower-roman}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.upperroman{list-style-type:upper-roman}.eclipse-jkube__documentation .eclipse-jkube__documentation-content ol.lowergreek{list-style-type:lower-greek}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .colist>table,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hdlist>table{border:0;background:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .colist>table>tbody>tr,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hdlist>table>tbody>tr{background:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.hdlist1,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.hdlist2{vertical-align:top;padding:0 .625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.hdlist1{font-weight:700;padding-bottom:1.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock+.colist,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .literalblock+.colist{margin-top:-.5em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .colist td:not([class]):first-child img{max-width:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .colist td:not([class]):last-child{padding:.25em 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .thumb{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock.left{margin:.25em .625em 1.25em 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock.right{margin:.25em 0 1.25em .625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock>.title{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock.th,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock.thumb{border-width:6px}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock.th>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .imageblock.thumb>.title{padding:0 .125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .image.left,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .image.left{margin-right:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .image.right{margin-left:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a.image{text-decoration:none;display:inline-block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a.image object{pointer-events:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup.footnote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup.footnoteref{font-size:.875em;position:static;vertical-align:super}.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup.footnote a,.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup.footnoteref a{text-decoration:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup.footnote a:active,.eclipse-jkube__documentation .eclipse-jkube__documentation-content sup.footnoteref a:active{text-decoration:underline}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes .footnote a:first-of-type{font-weight:700;text-decoration:none;margin-left:-1.05em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes .footnote:last-of-type{margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .gist .file-data>table td.line-data{width:99%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content div.unbreakable{page-break-inside:avoid}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .big{font-size:larger}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .small{font-size:smaller}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .underline{text-decoration:underline}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .overline{text-decoration:overline}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .line-through{text-decoration:line-through}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .aqua{color:#00bfbf}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .aqua-background{background:#00fafa}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .black{color:#000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .black-background{background:#000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .blue{color:#0000bf}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .blue-background{background:#0000fa}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .fuchsia{color:#bf00bf}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .fuchsia-background{background:#fa00fa}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .gray{color:#606060}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .gray-background{background:#7d7d7d}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .green{color:#006000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .green-background{background:#007d00}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .lime{color:#00bf00}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .lime-background{background:#00fa00}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .maroon{color:#600000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .maroon-background{background:#7d0000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .navy{color:#000060}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .navy-background{background:#00007d}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .olive{color:#606000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .olive-background{background:#7d7d00}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .purple{color:#600060}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .purple-background{background:#7d007d}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .red{color:#bf0000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .red-background{background:#fa0000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .silver{color:#909090}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .silver-background{background:#bcbcbc}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .teal{color:#006060}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .teal-background{background:#007d7d}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .white{color:#bfbfbf}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .white-background{background:#fafafa}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .yellow{color:#bfbf00}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .yellow-background{background:#fafa00}.eclipse-jkube__documentation .eclipse-jkube__documentation-content span.icon>.fa{cursor:default}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a span.icon>.fa{cursor:inherit}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.icon .icon-note:before{content:"\F05A";color:#19407c}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.icon .icon-tip:before{content:"\F0EB";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.icon .icon-warning:before{content:"\F071";color:#bf6900}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.icon .icon-caution:before{content:"\F06D";color:#bf3400}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .admonitionblock td.icon .icon-important:before{content:"\F06A";color:#bf0000}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:Open Sans,DejaVu Sans,sans-serif;font-style:normal;font-weight:700}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .conum[data-value] *{color:#fff!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .conum[data-value]+b{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .conum[data-value]:after{content:attr(data-value)}.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre .conum[data-value]{position:relative;top:-.125em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content b.conum *{color:inherit!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .conum:not([data-value]):empty{display:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content div.footnote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.content,.eclipse-jkube__documentation .eclipse-jkube__documentation-content th.tableblock{text-rendering:optimizeLegibility}.eclipse-jkube__documentation .eclipse-jkube__documentation-content h1,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content span.alt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.content{letter-spacing:-.01em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content div.footnote strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content p strong,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.content strong{letter-spacing:-.005em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content span.alt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.content{font-size:1.0625rem}.eclipse-jkube__documentation .eclipse-jkube__documentation-content p{margin-bottom:1.25rem}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock dt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock td.content,.eclipse-jkube__documentation .eclipse-jkube__documentation-content p.tableblock{font-size:1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .print-only{display:none!important}@page{.eclipse-jkube__documentation .eclipse-jkube__documentation-content{margin:1.25cm .75cm}}@media print{.eclipse-jkube__documentation .eclipse-jkube__documentation-content *{box-shadow:none!important;text-shadow:none!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content html{font-size:80%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a{color:inherit!important;text-decoration:underline!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a.bare,.eclipse-jkube__documentation .eclipse-jkube__documentation-content a[href^="#"],.eclipse-jkube__documentation .eclipse-jkube__documentation-content a[href^="mailto:"]{text-decoration:none!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content a[href^="http:"]:not(.bare):after,.eclipse-jkube__documentation .eclipse-jkube__documentation-content a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content abbr[title]:after{content:" (" attr(title) ")"}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content img,.eclipse-jkube__documentation .eclipse-jkube__documentation-content object,.eclipse-jkube__documentation .eclipse-jkube__documentation-content pre,.eclipse-jkube__documentation .eclipse-jkube__documentation-content svg,.eclipse-jkube__documentation .eclipse-jkube__documentation-content tr{page-break-inside:avoid}.eclipse-jkube__documentation .eclipse-jkube__documentation-content thead{display:table-header-group}.eclipse-jkube__documentation .eclipse-jkube__documentation-content svg{max-width:100%}.eclipse-jkube__documentation .eclipse-jkube__documentation-content blockquote,.eclipse-jkube__documentation .eclipse-jkube__documentation-content dt,.eclipse-jkube__documentation .eclipse-jkube__documentation-content p,.eclipse-jkube__documentation .eclipse-jkube__documentation-content td.content{font-size:1em;orphans:3;widows:3}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toctitle,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock>.content>.title,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content h3{page-break-after:avoid}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .exampleblock>.content,.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sidebarblock{background:none!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #header{text-align:center}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #header .details{border:0!important;display:block;padding:0!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #header .details span:first-child{margin-left:0!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #header .details br{display:block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #header .details br+span:before{content:none!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #preamble,.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book #toc,.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book .sect1>h2,.eclipse-jkube__documentation .eclipse-jkube__documentation-content body.book h1.sect0{page-break-before:always}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .listingblock code[data-lang]:before{display:block}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer{padding:0 .9375em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hide-on-print{display:none!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .print-only{display:block!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .hide-for-print{display:none!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .show-for-print{display:inherit!important}}@media amzn-kf8,print{.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header>h1:first-child{margin-top:1.25rem}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sect1{padding:0!important}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .sect1+.sect1{border:0}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer{background:none}.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer-text{color:rgba(0,0,0,.6);font-size:.9em}}@media amzn-kf8{.eclipse-jkube__documentation .eclipse-jkube__documentation-content #content,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footer,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #footnotes,.eclipse-jkube__documentation .eclipse-jkube__documentation-content #header{padding:0}}@media screen and (min-width:768px){.eclipse-jkube__documentation .eclipse-jkube__documentation-content{padding-left:21em}.eclipse-jkube__documentation .eclipse-jkube__documentation-content .toc{position:fixed;width:20em;left:0;top:105px;bottom:0;z-index:1000;padding:0 16px;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;overflow:auto}}.eclipse-jkube__documentation .eclipse-jkube__documentation-content i.fa{font-style:normal}.eclipse-jkube__quickstarts{padding:0}.eclipse-jkube__quickstarts-item{list-style:none}.eclipse-jkube__quickstarts-item:not(:last-child){margin-bottom:16px}</style><meta name="generator" content="Gatsby 2.24.12"/><title data-react-helmet="true">org.eclipse.jkube/kubernetes-maven-plugin</title><meta data-react-helmet="true" charSet="UTF-8"/><meta data-react-helmet="true" name="description" content=""/><style type="text/css">
.anchor.before {
position: absolute;
top: 0;
left: 0;
transform: translateX(-100%);
padding-right: 4px;
}
.anchor.after {
display: inline-block;
padding-left: 4px;
}
h1 .anchor svg,
h2 .anchor svg,
h3 .anchor svg,
h4 .anchor svg,
h5 .anchor svg,
h6 .anchor svg {
visibility: hidden;
}
h1:hover .anchor svg,
h2:hover .anchor svg,
h3:hover .anchor svg,
h4:hover .anchor svg,
h5:hover .anchor svg,
h6:hover .anchor svg,
h1 .anchor:focus svg,
h2 .anchor:focus svg,
h3 .anchor:focus svg,
h4 .anchor:focus svg,
h5 .anchor:focus svg,
h6 .anchor:focus svg {
visibility: visible;
}
</style><script>
document.addEventListener("DOMContentLoaded", function(event) {
var hash = window.decodeURI(location.hash.replace('#', ''))
if (hash !== '') {
var element = document.getElementById(hash)
if (element) {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
var clientTop = document.documentElement.clientTop || document.body.clientTop || 0
var offset = element.getBoundingClientRect().top + scrollTop - clientTop
// Wait for the browser to finish rendering before scrolling.
setTimeout((function() {
window.scrollTo(0, offset - 0)
}), 0)
}
}
})
</script><link as="script" rel="preload" href="/jkube/webpack-runtime-5e7a06a902090b1f37ba.js"/><link as="script" rel="preload" href="/jkube/framework-fd2b85530eec85104a39.js"/><link as="script" rel="preload" href="/jkube/app-d7398b08e923fe8a3caa.js"/><link as="script" rel="preload" href="/jkube/styles-c2fe8482057191dca484.js"/><link as="script" rel="preload" href="/jkube/commons-8b827618f0536ebfeda2.js"/><link as="script" rel="preload" href="/jkube/component---src-templates-doc-jsx-5366dbd1b50f3447a412.js"/><link as="fetch" rel="preload" href="/jkube/page-data/docs/kubernetes-maven-plugin/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/jkube/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div class="eclipse-jkube"><header class="eclipse-jkube__header"><div class="eclipse-jkube__header-container"><a class="eclipse-jkube__header-logo" href="/jkube/"><div class="eclipse-jkube__header-logo-eclipse-image"><img src="/jkube/static/EF_WHT-OR_png-d0fd43ad31261ee9693a060be920e71e.png" alt="Eclipse Foundation"/></div><div class="eclipse-jkube__header-logo-jkube"><img class="eclipse-jkube__header-logo-jkube-image" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyOTEuMiA4OC41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTEuMiA4OC41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuamt1YmUtaWNvbi1vdXRlcntmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDt9Cgkuamt1YmUtaWNvbi1pbm5lciwgLmprdWJlLWljb24tb3V0ZXJ7ZmlsbDojRkZGRkZGO30KCS5qa3ViZS10ZXh0e2ZpbGw6ICNGRkZGRkY7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJqa3ViZS10ZXh0IiBkPSJNMTAwLjIsMjMuMWgyMS43djI4LjFjMCwzLTAuOCw1LjgtMi4zLDguNGMtMS41LDIuNi0zLjYsNC42LTYuMiw2LjFjLTIuNiwxLjUtNS41LDIuMi04LjUsMi4yYy0zLjEsMC01LjktMC43LTguNS0yLjIKCQljLTIuNi0xLjUtNC43LTMuNS02LjItNi4xYy0xLjUtMi42LTIuMy01LjQtMi4zLTguNGgxMS4yYzAsMS41LDAuNiwyLjgsMS43LDMuOXMyLjUsMS42LDQuMSwxLjZjMS42LDAsMi45LTAuNSw0LjEtMS42CgkJYzEuMS0xLjEsMS43LTIuNCwxLjctMy45di0xN2gtMTAuNVYyMy4xeiIvPgoJPHBhdGggY2xhc3M9ImprdWJlLXRleHQiIGQ9Ik0xNjMuMywyM2wtMTguMywxOS43bDE4LDI0LjNIMTQ5bC0xMS44LTE2bDAsMHYxNS43aC0xMS4yVjIzaDExLjJ2MTEuNkwxNDcuOSwyM0gxNjMuM3oiLz4KCTxwYXRoIGNsYXNzPSJqa3ViZS10ZXh0IiBkPSJNMTk4LDM1LjFjLTAuMywyLjYtMC40LDQuOS0wLjQsOC4ydjE3YzAsMy44LDAuMSw2LDAuNCw4LjJIMTg3di0yLjRjMC0wLjMsMC0xLjEsMC4xLTEuNWMtMy42LDMuNC02LjgsNC43LTExLjQsNC43CgkJYy0zLjcsMC02LjYtMS04LjctMy4xYy0yLjItMi4yLTMuMS00LjktMy4xLTkuMlY0My4zYzAtMy4yLTAuMi01LjktMC40LTguMmgxMS40Yy0wLjMsMi42LTAuNCw0LjktMC40LDguMnYxMS4zCgkJYzAsMi4zLDAuMiwzLjIsMC45LDQuMWMwLjgsMSwyLDEuNSwzLjYsMS41YzMsMCw2LjEtMi4xLDguMi01LjdWNDMuM2MwLTMuMS0wLjEtNS40LTAuNC04LjJIMTk4eiIvPgoJPHBhdGggY2xhc3M9ImprdWJlLXRleHQiIGQ9Ik0yMDMuNyw2OC42YzAuMy0yLjYsMC40LTQuOSwwLjQtOC42VjMxLjVjMC00LTAuMS02LTAuNC04LjZoMTEuMWMtMC4zLDIuNi0wLjQsNC42LTAuNCw4LjZ2NC42YzAsMC44LDAsMS4zLTAuMSwyLjEKCQljMy4yLTIuOSw2LjgtNC4xLDExLjMtNC4xYzEwLDAsMTUuOCw2LjQsMTUuOCwxNy4yYzAsNS45LTEuNywxMC42LTQuOSwxMy45Yy0yLjksMi45LTYuNiw0LjMtMTEuNCw0LjNjLTQuNiwwLTcuMi0wLjktMTAuOC0zLjkKCQljMCwwLjIsMC4xLDAuOSwwLjEsMS4ydjEuOEgyMDMuN3ogTTIyMy4yLDQyLjRjLTUsMC04LjYsMy44LTguNiw5LjJjMCw1LjQsMy42LDkuNiw4LjMsOS42YzQuOCwwLDgtMy45LDgtOS43CgkJQzIzMC45LDQ1LjgsMjI4LDQyLjQsMjIzLjIsNDIuNHoiLz4KCTxwYXRoIGNsYXNzPSJqa3ViZS10ZXh0IiBkPSJNMjU0LjYsNTQuOWMwLjUsNC40LDMuMSw2LjgsNy41LDYuOGMyLjIsMCw0LjEtMC43LDUuNS0yYzAuOC0wLjgsMS4yLTEuNCwxLjYtMi44bDkuNiwyLjdjLTEuMywyLjktMi4xLDQuMS0zLjYsNS43CgkJYy0zLjEsMy4xLTcuNSw0LjctMTMsNC43Yy01LjQsMC05LjYtMS41LTEyLjctNC43Yy0zLjItMy4zLTUtOC01LTEzLjRjMC0xMC45LDctMTguMSwxNy41LTE4LjFjOC42LDAsMTQuNiw0LjcsMTYuNSwxMi45CgkJYzAuNCwxLjgsMC43LDQuMSwwLjgsNy4yYzAsMC4yLDAsMC41LDAuMSwxLjFIMjU0LjZ6IE0yNjguOSw0Ny4zYy0wLjgtMy41LTMuMS01LjQtNi45LTUuNGMtMy45LDAtNi4zLDEuOC03LjIsNS40SDI2OC45eiIvPgo8L2c+CjxnPgoJPHBhdGggY2xhc3M9ImprdWJlLWljb24tb3V0ZXIiIGQ9Ik05LjMsNTkuOGMwLjksMC44LDIuNSwxLjUsMy41LDIuMWwyMS42LDEyLjVjMSwwLjYsMi41LDEuNiwzLjYsMnYtNi4zTDE0LjgsNTYuNmwwLTI2LjgKCQljLTEuNi0wLjQtNC4yLTIuNy01LjYtMi45TDkuMyw1OS44eiIvPgoJPHBhdGggY2xhc3M9ImprdWJlLWljb24tb3V0ZXIiIGQ9Ik02OSw1OS44bC0wLjEtMzNjLTEuNSwwLjUtMy45LDIuNi01LjUsM2wwLDI2LjljLTAuOCwwLjgtNC45LDIuOS02LjEsMy42TDQ1LDY3LjNjLTUuMSwzLTQuOCwyLTQuOCw0LjkKCQlsMC4xLDQuMkw2OSw1OS44eiIvPgoJPHBhdGggY2xhc3M9ImprdWJlLWljb24tb3V0ZXIiIGQ9Ik0xNS45LDI4YzEuOS0wLjcsNC4zLTIuNCw2LTMuNGMxLjktMS4xLDMuOC0yLjIsNS43LTMuM2MyLjEtMS4yLDMuNy0yLjIsNS44LTMuNGMxLjctMC45LDQuMS0yLjYsNS43LTMuMgoJCWwxNC4zLDguMmMyLjQsMS40LDQuNywyLjcsNy4yLDQuMWMyLjEsMS4yLDEuNiwxLDMuNy0wLjFjMS0wLjYsMi43LTEuNCwzLjQtMi4xQzY3LDI0LjEsMzkuNCw4LjMsMzkuMiw4LjMKCQlDMzksOC4zLDExLjQsMjQsMTAuNSwyNC45TDE1LjksMjh6Ii8+CjwvZz4KPHBhdGggY2xhc3M9ImprdWJlLWljb24taW5uZXIiIGQ9Ik0zOS4yLDE3LjhMMTcuOCwzMC4xdjI0LjdsMjEuNCwxMi4zbDIxLjQtMTIuM1YzMC4xTDM5LjIsMTcuOHogTTQ2LjYsNDYuOGMwLDEuOC0wLjUsMy42LTEuNCw1LjEKCWMtMC45LDEuNi0yLjIsMi44LTMuOCwzLjdjLTEuNiwwLjktMy4zLDEuNC01LjIsMS40Yy0xLjksMC0zLjYtMC41LTUuMi0xLjRjLTEuNi0wLjktMi45LTIuMi0zLjgtMy43Yy0wLjktMS42LTEuNC0zLjMtMS40LTUuMWg2LjgKCWMwLDAuOSwwLjMsMS43LDEsMi40czEuNSwxLDIuNSwxYzEsMCwxLjgtMC4zLDIuNS0xYzAuNy0wLjcsMS0xLjUsMS0yLjRWMzYuNWgtNi40di02LjhoMTMuM1Y0Ni44eiIvPgo8L3N2Zz4K" alt="JKube"/><span class="eclipse-jkube__header-trade-mark"></span></div></a><div class="eclipse-jkube__header-content"><ul><li><a href="/jkube/docs">Docs</a></li><li><a href="/jkube/demos">Demos</a></li><li><a href="/jkube/community">Community</a></li><li><a href="/jkube/contributing">Contributing</a></li><li><a class="eclipse-jkube__header-stars" href="https://github.com/eclipse/jkube" title="eclipse/jkube" target="_blank" rel="nofollow noopener noreferrer"><img src="https://img.shields.io/github/stars/eclipse/jkube?style=social" alt="eclipse/jkube stargazers"/></a></li></ul></div></div></header><div class="eclipse-jkube__documentation book toc2 toc-left"><div class="eclipse-jkube__documentation-content"><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>&#169; 2020 The original authors.</p>
</div>
<div id="toc" class="toc">
<div id="toctitle" class="title">kubernetes-maven-plugin</div>
<ul class="sectlevel1">
<li><a href="#introduction">1. Introduction</a>
<ul class="sectlevel2">
<li><a href="#building-images">1.1. Building Images</a></li>
<li><a href="#resource-descriptors">1.2. Kubernetes Resources</a></li>
<li><a href="#_configuration">1.3. Configuration</a></li>
<li><a href="#_examples">1.4. Examples</a>
<ul class="sectlevel3">
<li><a href="#zero-config">1.4.1. Zero-Config</a></li>
<li><a href="#_xml_configuration">1.4.2. XML Configuration</a></li>
<li><a href="#_resource_fragments">1.4.3. Resource Fragments</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#compatibility-with-Kubernetes">2. Compatibility with Kubernetes</a>
<ul class="sectlevel2">
<li><a href="#kubernetes-compatibility">2.1. Kubernetes Compatibility</a></li>
</ul>
</li>
<li><a href="#installation">3. Installation</a></li>
<li><a href="#goals">4. Goals Overview</a></li>
<li><a href="#goals-overview-build">5. Build Goals</a>
<ul class="sectlevel2">
<li><a href="#jkube:resource">5.1. <strong>k8s:resource</strong></a>
<ul class="sectlevel3">
<li><a href="#resource-labels-annotations">5.1.1. Labels and Annotations</a></li>
<li><a href="#resource-secrets">5.1.2. Secrets</a></li>
<li><a href="#resource-validation">5.1.3. Resource Validation</a></li>
<li><a href="#Supported-Properties-Resource">5.1.4. Supported Properties for Resource goal</a></li>
</ul>
</li>
<li><a href="#jkube:build">5.2. <strong>k8s:build</strong></a>
<ul class="sectlevel3">
<li><a href="#build-kubernetes">5.2.1. Kubernetes Build</a></li>
<li><a href="#build-goal-configuration">5.2.2. Configuration (XML)</a></li>
<li><a href="#_kubernetes_access_configuration">5.2.3. Kubernetes Access Configuration</a></li>
<li><a href="#_image_configuration">5.2.4. Image Configuration</a></li>
<li><a href="#build-configuration">5.2.5. Build Configuration</a></li>
<li><a href="#build-assembly">5.2.6. Assembly</a></li>
<li><a href="#misc-env">5.2.7. Environment and Labels</a></li>
<li><a href="#misc-startup">5.2.8. Startup Arguments</a></li>
<li><a href="#build-buildargs">5.2.9. Build Args</a></li>
<li><a href="#build-healthcheck">5.2.10. Healthcheck</a></li>
</ul>
</li>
<li><a href="#jkube:push">5.3. <strong>k8s:push</strong></a></li>
<li><a href="#jkube:apply">5.4. <strong>k8s:apply</strong></a>
<ul class="sectlevel3">
<li><a href="#Supported-Properties-Apply">5.4.1. Supported Properties For Apply goal</a></li>
</ul>
</li>
<li><a href="#jkube:helm">5.5. <strong>k8s:helm</strong></a></li>
</ul>
</li>
<li><a href="#goals-overview-develop">6. Development Goals</a>
<ul class="sectlevel2">
<li><a href="#jkube:deploy">6.1. <strong>k8s:deploy</strong></a></li>
<li><a href="#jkube:undeploy">6.2. <strong>k8s:undeploy</strong></a></li>
<li><a href="#jkube:log">6.3. <strong>k8s:log</strong></a>
<ul class="sectlevel3">
<li><a href="#Supported-Properties-Log">6.3.1. Supported Properties for Log goal</a></li>
</ul>
</li>
<li><a href="#jkube:debug">6.4. <strong>k8s:debug</strong></a>
<ul class="sectlevel3">
<li><a href="#_speeding_up_debugging">6.4.1. Speeding up debugging</a></li>
<li><a href="#_debugging_with_suspension">6.4.2. Debugging with suspension</a></li>
<li><a href="#Supported-Properties-Debug">6.4.3. Supported Properties For Debug Goal</a></li>
</ul>
</li>
<li><a href="#jkube:watch">6.5. <strong>k8s:watch</strong></a>
<ul class="sectlevel3">
<li><a href="#watcher-spring-boot">6.5.1. Spring Boot</a></li>
<li><a href="#watcher-docker-image">6.5.2. Docker Image</a></li>
<li><a href="#Supported-Properties-Watch">6.5.3. Supported Properties for Watch goal</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#generators">7. Generators</a>
<ul class="sectlevel2">
<li><a href="#generators-default">7.1. Default Generators</a>
<ul class="sectlevel3">
<li><a href="#generator-java-exec">7.1.1. Java Applications</a></li>
<li><a href="#generator-spring-boot">7.1.2. Spring Boot</a></li>
<li><a href="#generator-wildfly-swarm">7.1.3. Wildfly Swarm</a></li>
<li><a href="#generator-thorntail-v2">7.1.4. Thorntail v2</a></li>
<li><a href="#generator-vertx">7.1.5. Vert.x</a></li>
<li><a href="#generator-karaf">7.1.6. Karaf</a></li>
<li><a href="#generator-webapp">7.1.7. Web Applications</a></li>
<li><a href="#generator-quarkus">7.1.8. Quarkus</a></li>
<li><a href="#generator-openliberty">7.1.9. Open Liberty</a></li>
<li><a href="#generator-wildfly-jar">7.1.10. Wildfly JAR Generator</a></li>
</ul>
</li>
<li><a href="#generators-api">7.2. Generator API</a></li>
</ul>
</li>
<li><a href="#enrichers">8. Enrichers</a>
<ul class="sectlevel2">
<li><a href="#enrichers-default">8.1. Default Enrichers</a>
<ul class="sectlevel3">
<li><a href="#enrichers-generic">8.1.1. Generic Enrichers</a></li>
<li><a href="#enrichers-specific">8.1.2. Specific Enrichers</a></li>
</ul>
</li>
<li><a href="#_enricher_api">8.2. Enricher API</a></li>
</ul>
</li>
<li><a href="#profiles">9. Profiles</a>
<ul class="sectlevel2">
<li><a href="#generator-enricher-definition">9.1. Generator and Enricher definitions</a></li>
<li><a href="#profiles-lookup-order">9.2. Lookup order</a></li>
<li><a href="#profiles-using">9.3. Using Profiles</a></li>
<li><a href="#profiles-predefined">9.4. Predefined Profiles</a></li>
<li><a href="#profiles-extended">9.5. Extending Profiles</a></li>
</ul>
</li>
<li><a href="#access-configuration">10. Access configuration</a>
<ul class="sectlevel2">
<li><a href="#_docker_access">10.1. Docker Access</a></li>
<li><a href="#_openshift_and_kubernetes_access">10.2. OpenShift and Kubernetes Access</a></li>
</ul>
</li>
<li><a href="#registry">11. Registry handling</a></li>
<li><a href="#authentication">12. Authentication</a>
<ul class="sectlevel2">
<li><a href="#_pull_vs_push_authentication">12.1. Pull vs. Push Authentication</a></li>
<li><a href="#_openshift_authentication">12.2. OpenShift Authentication</a></li>
<li><a href="#password-encryption">12.3. Password encryption</a></li>
<li><a href="#extended-authentication">12.4. Extended Authentication</a></li>
</ul>
</li>
<li><a href="#volume-configuration">13. Volume Configuration</a></li>
<li><a href="#integrations">14. Integrations</a>
<ul class="sectlevel2">
<li><a href="#integrations.dekorate">14.1. Dekorate</a></li>
<li><a href="#_jib_java_image_builder">14.2. JIB (Java Image Builder)</a></li>
</ul>
</li>
<li><a href="#faq">15. FAQ</a>
<ul class="sectlevel2">
<li><a href="#_general_questions">15.1. General questions</a>
<ul class="sectlevel3">
<li><a href="#_how_do_i_define_an_environment_variable">15.1.1. How do I define an environment variable?</a></li>
<li><a href="#_how_do_i_define_a_system_property">15.1.2. How do I define a system property?</a></li>
<li><a href="#_how_do_i_mount_a_config_file_from_a_configmap">15.1.3. How do I mount a config file from a ConfigMap?</a></li>
<li><a href="#_how_do_i_use_a_persistent_volume">15.1.4. How do I use a Persistent Volume?</a></li>
<li><a href="#_how_do_i_generate_ingress_for_my_generated_service">15.1.5. How do I generate Ingress for my generated Service?</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#appendix">16. Appendix</a>
<ul class="sectlevel2">
<li><a href="#_kindfilename_type_mapping">16.1. Kind/Filename Type Mapping</a></li>
<li><a href="#_custom_kindfilename_mapping">16.2. Custom Kind/Filename Mapping</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="introduction">1. Introduction</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <strong>kubernetes-maven-plugin</strong> brings your Java applications on to
<a href="http://kubernetes.io/">Kubernetes</a>.
It provides a tight integration into <a href="http://maven.apache.org">Maven</a> and benefits from the build configuration already provided.
This plugin focus on two tasks: <em>Building Docker images</em> and <em>creating Kubernetes resource descriptors</em>.
It can be configured very flexibly and supports multiple configuration models for creating: A <em>Zero-Config</em> setup allows for a quick ramp-up with some opinionated defaults.
For more advanced requirements, an <em>XML configuration</em> provides additional configuration options which can be added to the <code>pom.xml</code>.
For the full power, in order to tune all facets of the creation, external <em>resource fragments</em> and <em>Dockerfiles</em> can be used.</p>
</div>
<div class="sect2">
<h3 id="building-images">1.1. Building Images</h3>
<div class="paragraph">
<p>The <a href="#jkube:build"><strong>k8s:build</strong></a> goal is for creating Docker images containing the actual application. These then can be deployed later on Kubernetes or OpenShift.
It is easy to include build artifacts and their dependencies into these images.
This plugin uses the assembly descriptor format similar to the one used in
<a href="http://maven.apache.org/plugins/maven-assembly-plugin/">maven-assembly-plugin</a> to specify the content which will be added
to the image.
That images can then be pushed to public or private Docker registries with <a href="#jkube:push"><strong>k8s:push</strong></a>.</p>
</div>
<div class="paragraph">
<p>Depending on the operational mode, for building the actual image either a Docker daemon is used directly or an <a href="https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/builds_and_image_streams.html#docker-build">OpenShift Docker Build</a> is performed.</p>
</div>
<div class="paragraph">
<p>A special <a href="#jkube:watch"><strong>k8s:watch</strong></a> goal allows for reacting to code changes to automatically recreate images or copy new artifacts into running containers.</p>
</div>
</div>
<div class="sect2">
<h3 id="resource-descriptors">1.2. Kubernetes Resources</h3>
<div class="paragraph">
<p>Kubernetes resource descriptors can be created or generated from <a href="#jkube:resource"><strong>k8s:resource</strong></a>.
These files are packaged within the Maven artifacts and can be deployed to a running orchestration platform with <a href="#jkube:apply"><strong>k8s:apply</strong></a>.</p>
</div>
<div class="paragraph">
<p>Typically you only specify a small part of the real resource descriptors which will be enriched by this plugin with various extra information taken from the <code>pom.xml</code>.
This drastically reduces boilerplate code for common scenarios.</p>
</div>
</div>
<div class="sect2">
<h3 id="_configuration">1.3. Configuration</h3>
<div class="paragraph">
<p>As mentioned already there are three levels of configuration:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Zero-Config</strong> mode makes some very opinionated decisions based on what is present in the pom.xml like what base image to use or which ports to expose.
This is great for starting up things and for keeping quickstart applications small and tidy.</p>
</li>
<li>
<p><strong>XML plugin configuration</strong> mode is similar to what <a href="https://dmp.fabric8.io/#example">docker-maven-plugin</a> provides.
This allows for type-safe configuration with IDE support, but only a subset of possible resource descriptor features is provided.</p>
</li>
<li>
<p><strong>Kubernetes &amp; OpenShift resource fragments</strong> are user provided YAML files that can be <em>enriched</em> by the plugin. This allows expert users to use a plain configuration file with all their capabilities, but also to add project specific build information and avoid boilerplate code.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following table gives an overview of the different models</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. Configuration Models</caption>
<colgroup>
<col style="width: 12.5%;">
<col style="width: 50%;">
<col style="width: 37.5%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Model</th>
<th class="tableblock halign-left valign-top">Docker Images</th>
<th class="tableblock halign-left valign-top">Resource Descriptors</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Zero-Config</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#generators">Generators</a> are used to create Docker image configurations. Generators can detect certain aspects of
the build (e.g. whether Spring Boot is used) and then choose some opinionated defaults like the base image, which
ports to expose and the startup command. They can be configured, but offer only a few options.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Default <a href="#enrichers">Enrichers</a> will create a default <em>Service</em> and <em>Deployment</em> (<em>DeploymentConfig</em> for OpenShift)
when no other resource objects are provided. Depending on the image they can detect which port to expose in the
service. As with Generators, Enrichers support a limited set of configuration options.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>XML configuration</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">kubernetes-maven-plugin inherits the XML based configuration for building images from the
<a href="https://dmp.fabric8.io/#docker:build">docker-maven-plugin</a> and provides the same functionality. It supports an
<a href="http://maven.apache.org/components/plugins/maven-assembly-plugin/assembly.html">assembly descriptor</a> for specifying the
content of the Docker image.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A subset of possible resource objects can be configured with a dedicated XML syntax. With a decent IDE you get
autocompletion on most objects and inline documentation for the available configuration elements. The provided
configuration can be still enhanced by Enhancers which is useful for adding e.g. labels and annotations containing
build or other information.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Resource Fragments</strong> and <strong>Dockerfiles</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Similarly to the docker-maven-plugin, kubernetes-maven-plugin supports <a href="#external-dockerfile">external Dockerfiles</a> too, which are
referenced from the plugin configuration.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Resource descriptors can be provided as external YAML files which will build a base skeleton for the applicable resource.</p>
<p class="tableblock"> The "skeleton" is then post-processed by <a href="#enrichers">Enrichers</a> which will complete the skeleton by adding the fields
each enricher is responsible of (labels, annotations, port information, etc.). Maven properties within these files
are resolved to their values.</p>
<p class="tableblock"> With this model you can use every Kubernetes / OpenShift resource objects with all their flexibility, but still get the benefit
of adding build information.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_examples">1.4. Examples</h3>
<div class="paragraph">
<p>Let&#8217;s have a look at some code. The following examples will demonstrate all three configurations variants:</p>
</div>
<div class="sect3">
<h4 id="zero-config">1.4.1. Zero-Config</h4>
<div class="paragraph">
<p>This minimal but full working example <code>pom.xml</code> shows how a simple spring boot application can be dockerized and
prepared for Kubernetes. The full example can be found in directory
<a href="https://github.com/eclipse/jkube/tree/master/quickstarts/maven/zero-config">quickstarts/maven/zero-config</a>.</p>
</div>
<div class="listingblock">
<div class="title">Example</div>
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;project&gt;
&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
&lt;groupId&gt;org.eclipse.jkube&lt;/groupId&gt;
&lt;artifactId&gt;jkube-maven-sample-zero-config&lt;/artifactId&gt;
&lt;version&gt;1.0.1&lt;/version&gt;
&lt;packaging&gt;jar&lt;/packaging&gt;
&lt;parent&gt;
&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
&lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt; <i class="conum" data-value="1"></i><b>(1)</b>
&lt;version&gt;1.5.5.RELEASE&lt;/version&gt;
&lt;/parent&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
&lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt; <i class="conum" data-value="2"></i><b>(2)</b>
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;build&gt;
&lt;plugins&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
&lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt; <i class="conum" data-value="3"></i><b>(3)</b>
&lt;/plugin&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.jkube&lt;/groupId&gt;
&lt;artifactId&gt;kubernetes-maven-plugin&lt;/artifactId&gt; <i class="conum" data-value="4"></i><b>(4)</b>
&lt;version&gt;1.0.1&lt;/version&gt;
&lt;/plugin&gt;
&lt;/plugins&gt;
&lt;/build&gt;
&lt;/project&gt;</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>This minimalistic spring boot application uses the spring-boot parent POM for setting up dependencies and plugins</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>The Spring Boot web starter dependency enables a simple embedded Tomcat for serving Spring MVC apps</td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td>The <code>spring-boot-maven-plugin</code> is responsible for repackaging the application into a fat jar, including all dependencies and the embedded Tomcat</td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td>The <code>kubernetes-maven-plugin</code> enables the automatic generation of a Docker image and Kubernetes / OpenShift descriptors including this Spring application.</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>This setup make some opinionated decisions for you:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>As base image <a href="https://quay.io/repository/jkube/jkube-java-binary-s2i">jkube/jkube-java-binary-s2i</a>
is chosen which enables <a href="https://www.jolokia.org">Jolokia</a> and <a href="https://github.com/prometheus/jmx_exporter">jmx_exporter</a>.
It also comes with a sophisticated <a href="https://github.com/jboss-openshift/cct_module/tree/master/jboss/container/java/run/bash">startup script</a>.</p>
</li>
<li>
<p>It will create a Kubernetes <a href="http://kubernetes.io/docs/user-guide/deployments/">Deployment</a> and a
<a href="http://kubernetes.io/docs/user-guide/services/">Service</a> as resource objects</p>
</li>
<li>
<p>It exports port 8080 as the application service port (and 8778 and 9779 for Jolokia and jmx_exporter access, respectively)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>These choices can be influenced by configuration options as described in <a href="#generator-spring-boot">Spring Boot Generator</a>.</p>
</div>
<div class="paragraph">
<p>To start the Docker image build, you simply run</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-bash" data-lang="bash">mvn package k8s:build</code></pre>
</div>
</div>
<div class="paragraph">
<p>This will create the Docker image against a running Docker daemon (which must be accessible either via Unix Socket or
with the URL set in <code>DOCKER_HOST</code>). Alternatively, when connected to an OpenShift cluster then a <a href="https://docs.openshift.com/enterprise/3.0/using_images/s2i_images/index.html">S2I</a> build will be performed on OpenShift which at the end creates an
<a href="https://docs.openshift.com/enterprise/3.1/architecture/core_concepts/builds_and_image_streams.html">ImageStream</a>.</p>
</div>
<div class="paragraph">
<p>To deploy the resources to the cluster call</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-bash" data-lang="bash">mvn k8s:resource k8s:deploy</code></pre>
</div>
</div>
<div class="paragraph">
<p>By default a <em>Service</em> and a <em>Deployment</em> object pointing to the created Docker image is created. When running in OpenShift mode, a <em>Service</em> and <em>DeploymentConfig</em> which refers the <em>ImageStream</em> created with <code>k8s:build</code> will be installed.</p>
</div>
<div class="paragraph">
<p>Of course you can bind all those jkube-goals to execution phases as well, so that they are called along with standard lifecycle goals like <code>install</code>. For example, to bind the building of the Kubernetes resource files and the Docker images, add the following goals to the execution of the kubernetes-maven-plugin:</p>
</div>
<div class="listingblock">
<div class="title">Example for lifecycle bindings</div>
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.jkube&lt;/groupId&gt;
&lt;artifactId&gt;kubernetes-maven-plugin&lt;/artifactId&gt;
&lt;!-- ... --&gt;
&lt;executions&gt;
&lt;execution&gt;
&lt;goals&gt;
&lt;goal&gt;resource&lt;/goal&gt;
&lt;goal&gt;build&lt;/goal&gt;
&lt;/goals&gt;
&lt;/execution&gt;
&lt;/executions&gt;
&lt;/plugin&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you&#8217;d also like to automatically deploy to Kubernetes each time you do a <code>mvn install</code> you can add the <code>apply</code> goal:</p>
</div>
<div class="listingblock">
<div class="title">Example for lifecycle bindings with automatic deploys for mvn install</div>
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.jkube&lt;/groupId&gt;
&lt;artifactId&gt;kubernetes-maven-plugin&lt;/artifactId&gt;
&lt;!-- ... --&gt;
&lt;executions&gt;
&lt;execution&gt;
&lt;goals&gt;
&lt;goal&gt;resource&lt;/goal&gt;
&lt;goal&gt;build&lt;/goal&gt;
&lt;goal&gt;apply&lt;/goal&gt;
&lt;/goals&gt;
&lt;/execution&gt;
&lt;/executions&gt;
&lt;/plugin&gt;</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_xml_configuration">1.4.2. XML Configuration</h4>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
XML based configuration is only partially implemented and is not recommended for use right now.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Although the Zero-config mode and its generators can be tweaked with options up to a certain degree, many cases require more flexibility. For such instances, an XML-based plugin configuration can be used, in a way similar to the
<a href="https://dmp.fabric8.io/#configuration">XML configuration</a> used by <code>docker-maven-plugin</code>.</p>
</div>
<div class="paragraph">
<p>The plugin configuration can be roughly divided into the following sections:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Global configuration options are responsible for tuning the behaviour of plugin goals</p>
</li>
<li>
<p><code>&lt;images&gt;</code> defines which Docker <a href="#image-configuration">images</a> are used and configured. This section is similar to the
<a href="https://dmp.fabric8.io//#image-configuration">image configuration</a> of the <code>docker-maven-plugin</code>, except that <code>&lt;run&gt;</code>
and <code>&lt;external&gt;</code> sub-elements are ignored)</p>
</li>
<li>
<p><code>&lt;resource&gt;</code> defines the resource descriptors for deploying on an OpenShift or Kuberneres cluster.</p>
</li>
<li>
<p><code>&lt;generator&gt;</code> configures <a href="#generators">generators</a> which are responsible for creating images. Generators are used as an alternative to a dedicated <code>&lt;images&gt;</code> section.</p>
</li>
<li>
<p><code>&lt;enricher&gt;</code> configures various aspects of <a href="#enrichers">enrichers</a> for creating or enhancing resource descriptors.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>A working example can be found in the
<a href="https://github.com/eclipse/jkube/tree/master/quickstarts/maven/xml-config">quickstarts/maven/xml-config</a> directory.
An extract of the plugin configuration is shown below:</p>
</div>
<div class="listingblock">
<div class="title">Example for an XML configuration</div>
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;configuration&gt;
&lt;namespace&gt;test-ns&lt;/namespace&gt;
&lt;images&gt; <i class="conum" data-value="1"></i><b>(1)</b>
&lt;image&gt;
&lt;name&gt;xml-config-demo:1.0.0&lt;/name&gt;
&lt;!-- "alias" is used to correlate to the containers in the pod spec --&gt;
&lt;alias&gt;camel-app&lt;/alias&gt;
&lt;build&gt;
&lt;from&gt;fabric8/java-centos-openjdk8-jre&lt;/from&gt;
&lt;assembly&gt;
&lt;inline&gt;
&lt;baseDirectory&gt;/deployments&lt;/baseDirectory&gt;
&lt;/inline&gt;
&lt;/assembly&gt;
&lt;env&gt;
&lt;JAVA_LIB_DIR&gt;/deployments&lt;/JAVA_LIB_DIR&gt;
&lt;JAVA_MAIN_CLASS&gt;org.apache.camel.cdi.Main&lt;/JAVA_MAIN_CLASS&gt;
&lt;/env&gt;
&lt;/build&gt;
&lt;/image&gt;
&lt;/images&gt;
&lt;resources&gt; <i class="conum" data-value="2"></i><b>(2)</b>
&lt;labels&gt; <i class="conum" data-value="3"></i><b>(3)</b>
&lt;all&gt;
&lt;group&gt;quickstarts&lt;/group&gt;
&lt;/all&gt;
&lt;/labels&gt;
&lt;replicas&gt;2&lt;/replicas&gt; <i class="conum" data-value="4"></i><b>(4)</b>
&lt;controllerName&gt;${project.artifactId}&lt;/controllerName&gt; <i class="conum" data-value="5"></i><b>(5)</b>
&lt;services&gt; <i class="conum" data-value="6"></i><b>(6)</b>
&lt;service&gt;
&lt;name&gt;camel-service&lt;/name&gt;
&lt;headless&gt;true&lt;/headless&gt;
&lt;/service&gt;
&lt;/services&gt;
&lt;serviceAccounts&gt;
&lt;serviceAccount&gt;
&lt;name&gt;build-robot&lt;/name&gt;
&lt;/serviceAccount&gt;
&lt;/serviceAccounts&gt;
&lt;/resources&gt;
&lt;/configuration&gt;</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>Standard XML configuration for building one single Docker image</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>Kubernetes / OpenShift resources to create</td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td>Labels which should be applied globally to all resource objects</td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td>Number of replicas desired</td>
</tr>
<tr>
<td><i class="conum" data-value="5"></i><b>5</b></td>
<td>Name of controller created by plugin</td>
</tr>
<tr>
<td><i class="conum" data-value="6"></i><b>6</b></td>
<td>One or more <a href="http://kubernetes.io/docs/user-guide/services/">Service</a> definitions.</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The XML resource configuration is based on plain Kubernetes resource objects. When targeting OpenShift, Kubernetes resource descriptors will be automatically converted to their OpenShift counterparts, e.g. a Kubernetes <a href="http://kubernetes.io/docs/user-guide/deployments/">Deployment</a> will be converted to an OpenShift <a href="https://docs.openshift.com/container-platform/4.1/applications/deployments/what-deployments-are.html#deployments-and-deploymentconfigs_what-deployments-are">DeploymentConfig</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_resource_fragments">1.4.3. Resource Fragments</h4>
<div class="paragraph">
<p>The third configuration option is to use an external configuration in form of YAML resource descriptors which are located in the <code>src/main/jkube</code> directory. Each resource gets its own file, which contains a skeleton of a resource descriptor. The plugin will pick up the resource, enrich it and then combine all to a single <code>kubernetes.yml</code> and <code>openshift.yml</code> file. Within these descriptor files you are can freely use any Kubernetes feature.</p>
</div>
<div class="paragraph">
<p>Note: In order to support simultaneously both OpenShift and Kubernetes, there is currently no way to specify OpenShift-only features this way, though this might change in future releases.</p>
</div>
<div class="paragraph">
<p>Let&#8217;s have a look at an example from
<a href="https://github.com/eclipse/jkube/tree/master/quickstarts/maven/external-resources">quickstarts/maven/external-resources</a>.
This is a plain Spring Boot application, whose images are auto generated like in the <a href="#zero-config">Zero-Config</a> case.
The resource fragments are in <code>src/main/jkube</code>.</p>
</div>
<div class="listingblock">
<div class="title">Example fragment "deployment.yml"</div>
<div class="content">
<pre class="highlight"><code class="language-yaml" data-lang="yaml">spec:
replicas: 1
template:
spec:
volumes:
- name: config
gitRepo:
repository: 'https://github.com/jstrachan/sample-springboot-config.git'
revision: 667ee4db6bc842b127825351e5c9bae5a4fb2147
directory: .
containers:
- volumeMounts:
- name: config
mountPath: /app/config
env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
serviceAccount: ribbon</code></pre>
</div>
</div>
<div class="paragraph">
<p>As you can see, there is no <code>metadata</code> section as would be expected for Kubernetes resources because it will be automatically added by the <code>kubernetes-maven-plugin</code>. The object&#8217;s <code>Kind</code>, if not given, is automatically derived from the
filename. In this case, the <code>kubernetes-maven-plugin</code> will create a <code>Deployment</code> because the file is called <code>deployment.yml</code>. Similar mappings between file names and resource type exist for each supported resource kind, the
complete list of which (along with associated abbreviations) can be found in the <a href="#appendix-kind-mapping">Appendix</a>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Now that sidecar containers are supported in this plugin(if <code>jkube.sidecar</code> is enabled), be careful whenever you&#8217;re supplying container name in the resource fragment. If container specified in resource fragment doesn&#8217;t have a name or it&#8217;s name is equal to default fmp generated application&#8217;s container name; it would not be treated as sidecar and it would be merged into main container. However, You can override plugin&#8217;s default name for main container via <code>jkube.generator.alias</code> property.
</td>
</tr>
</table>
</div>
<hr>
<div class="paragraph">
<p>Additionally, if you name your fragment using a name prefix followed by a dash and the mapped file name, the plugin will automatically use that name for your resource. So, for example, if you name your deployment fragment
<code>myapp-deployment.yml</code>, the plugin will name your resource <code>myapp</code>. In the absence of such provided name for your resource, a name will be automatically derived from your project&#8217;s metadata (in particular, its <code>artifactId</code> as specified in your POM).</p>
</div>
<div class="paragraph">
<p>No image is also referenced in this example because the plugin also fills in the image details based on the configured image you are building with (either from a generator or from a dedicated image plugin configuration, as seen before).</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For building images there is also an alternative mode using external Dockerfiles, in addition to the XML based configuration. Refer to <a href="#build-overview">k8s:build</a> for details.
</td>
</tr>
</table>
</div>
<hr>
<div class="paragraph">
<p>Enrichment of resource fragments can be fine-tuned by using profile sub-directories. For more details see <a href="#profiles">Profiles</a>.</p>
</div>
<div class="paragraph">
<p>Now that we have seen some examples of the various ways how this plugin can be used, the following sections will describe the plugin goals and extension points in detail.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="compatibility-with-Kubernetes">2. Compatibility with Kubernetes</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="kubernetes-compatibility">2.1. Kubernetes Compatibility</h3>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 2. Kubernetes Compatibility</caption>
<colgroup>
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.667%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">KMP</th>
<th class="tableblock halign-left valign-top">Kubernetes 1.19</th>
<th class="tableblock halign-left valign-top">Kubernetes 1.18</th>
<th class="tableblock halign-left valign-top">Kubernetes 1.17</th>
<th class="tableblock halign-left valign-top">Kubernetes 1.14</th>
<th class="tableblock halign-left valign-top">Kubernetes 1.12</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">KMP 1.0.1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">KMP 1.0.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">KMP 0.2.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">KMP 0.1.1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">KMP 0.1.0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">x</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"></p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installation">3. Installation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This plugin is available from Maven central and can be connected to
pre- and post-integration phase as seen below. The configuration and
available goals are described below.</p>
</div>
<div class="paragraph">
<p>By default, Maven will only search for plugins in the <code>org.apache.maven.plugins</code> and <code>org.codehaus.mojo</code> packages. In order to resolve the provider for the JKube plugin goals, you need to edit <code>~/.m2/settings.xml</code> and add the <code>org.eclipse.jkube</code> namespace so the <code>&lt;pluginGroups&gt;</code> configuration.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;settings&gt;
...
&lt;pluginGroups&gt;
&lt;pluginGroup&gt;org.eclipse.jkube&lt;/pluginGroup&gt;
&lt;/pluginGroups&gt;
...
&lt;/settings&gt;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.jkube&lt;/groupId&gt;
&lt;artifactId&gt;kubernetes-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;1.0.1&lt;/version&gt;
&lt;configuration&gt;
....
&lt;images&gt;
&lt;!-- A single's image configuration --&gt;
&lt;image&gt;
...
&lt;build&gt;
....
&lt;/build&gt;
&lt;/image&gt;
....
&lt;/images&gt;
&lt;/configuration&gt;
&lt;!-- Connect k8s:resource, k8s:build and k8s:helm to lifecycle phases --&gt;
&lt;executions&gt;
&lt;execution&gt;
&lt;id&gt;jkube&lt;/id&gt;
&lt;goals&gt;
&lt;goal&gt;resource&lt;/goal&gt;
&lt;goal&gt;build&lt;/goal&gt;
&lt;goal&gt;helm&lt;/goal&gt;
&lt;/goals&gt;
&lt;/execution&gt;
&lt;/executions&gt;
&lt;/plugin&gt;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="goals">4. Goals Overview</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This plugin supports a rich set for providing a smooth Java developer experience. These goals can be categorized in multiple groups:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#goals-build">Build goals</a> are all about creating and managing Kubernetes build artifacts like Docker images or S2I builds.</p>
</li>
<li>
<p><a href="#goals-develop">Development goals</a> target help not only in deploying resource descriptors to the development cluster but also to manage the lifecycle of the development cluster as well.</p>
</li>
</ul>
</div>
<table id="goals-build" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 3. Build Goals</caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Goal</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:build"><strong>k8s:build</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Build images</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:push"><strong>k8s:push</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Push images to a registry</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:resource"><strong>k8s:resource</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Create Kubernetes or OpenShift resource descriptors</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:apply"><strong>k8s:apply</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Apply resources to a running cluster</p></td>
</tr>
</tbody>
</table>
<table id="goals-develop" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 4. Development Goals</caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Goal</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:deploy"><strong>k8s:deploy</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Deploy resources descriptors to a cluster after creating them and building the app. Same as <a href="#jkube:apply"><strong>k8s:apply</strong></a> except that it runs in the background.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:undeploy"><strong>k8s:undeploy</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Undeploy and remove resources descriptors from a cluster.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:watch"><strong>k8s:watch</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Watch for file changes and perform rebuilds and redeployments</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:log"><strong>k8s:log</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Show the logs of the running application</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><a href="#jkube:debug"><strong>k8s:debug</strong></a></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Enable remote debugging</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Depending on whether the OpenShift or Kubernetes operational mode is used, the workflow and the performed actions differs :</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 5. Workflows</caption>
<colgroup>
<col style="width: 11.1111%;">
<col style="width: 44.4444%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Use Case</th>
<th class="tableblock halign-left valign-top">Kubernetes</th>
<th class="tableblock halign-left valign-top">OpenShift</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Build</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>k8s:build</code> <code>k8s:push</code></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Creates an image against an exposed Docker daemon (with a <code>docker.tar</code>)</p>
</li>
<li>
<p>Pushes the image to a registry which is then referenced from the configuration</p>
</li>
</ul>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>k8s:build</code></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Creates or uses a <code>BuildConfig</code></p>
</li>
<li>
<p>Creates or uses an <code>ImageStream</code> which can be referenced by the deployment descriptors in a <code>DeploymenConfig</code></p>
</li>
<li>
<p>Starts an OpenShift build with a <code>docker.tar</code> as input</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Deploy</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>k8s:deploy</code></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Applies a Kubernetes resource descriptor to cluster</p>
</li>
</ul>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>k8s:deploy</code></p>
</div>
<div class="ulist">
<ul>
<li>
<p>Applies an OpenShift resource descriptor to a cluster</p>
</li>
</ul>
</div></div></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="goals-overview-build">5. Build Goals</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="jkube:resource">5.1. <strong>k8s:resource</strong></h3>
<div class="paragraph">
<p>This goal generates Kubernetes resources based on your project. It can either be opinionated defaults or
based on the configuration provided in XML config or resource fragments in <code>src/main/jkube</code>.
Generated resources are in <code>target/classes/META-INF/jkube/kubernetes</code> directory.</p>
</div>
<div class="sect3">
<h4 id="resource-labels-annotations">5.1.1. Labels and Annotations</h4>
<div class="paragraph">
<p>Labels and annotations can be easily added to any resource object. This is best explained by an example.</p>
</div>
<div class="listingblock">
<div class="title">Example for label and annotations</div>
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
&lt;!-- ... --&gt;
&lt;configuration&gt;
&lt;!-- ... --&gt;
&lt;resources&gt;
&lt;labels&gt; <i class="conum" data-value="1"></i><b>(1)</b>
&lt;all&gt; <i class="conum" data-value="1"></i><b>(1)</b>
&lt;property&gt; <i class="conum" data-value="2"></i><b>(2)</b>
&lt;name&gt;organisation&lt;/name&gt;
&lt;value&gt;unesco&lt;/value&gt;
&lt;/property&gt;
&lt;/all&gt;
&lt;service&gt; <i class="conum" data-value="3"></i><b>(3)</b>
&lt;property&gt;
&lt;name&gt;database&lt;/name&gt;
&lt;value&gt;mysql&lt;/value&gt;
&lt;/property&gt;
&lt;property&gt;
&lt;name&gt;persistent&lt;/name&gt;
&lt;value&gt;true&lt;/value&gt;
&lt;/property&gt;
&lt;/service&gt;
&lt;replicaSet&gt; <i class="conum" data-value="4"></i><b>(4)</b>
&lt;!-- ... --&gt;
&lt;/replicaSet&gt;
&lt;pod&gt; <i class="conum" data-value="5"></i><b>(5)</b>
&lt;!-- ... --&gt;
&lt;/pod&gt;
&lt;deployment&gt; <i class="conum" data-value="6"></i><b>(6)</b>
&lt;!-- ... --&gt;
&lt;/deployment&gt;
&lt;/labels&gt;
&lt;annotations&gt; <i class="conum" data-value="7"></i><b>(7)</b>
&lt;!-- ... --&gt;
&lt;/annotations&gt;
&lt;remotes&gt; <i class="conum" data-value="8"></i><b>(8)</b>
&lt;remote&gt;https://gist.githubusercontent.com/lordofthejars/ac2823cec7831697d09444bbaa76cd50/raw/e4b43f1b6494766dfc635b5959af7730c1a58a93/deployment.yaml&lt;/remote&gt;
&lt;/remotes&gt;
&lt;/resource&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td><code>&lt;labels&gt;</code> section with <code>&lt;resources&gt;</code> contains labels which should be applied to objects of various kinds</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>Within <code>&lt;all&gt;</code> labels which should be applied to <strong>every</strong> object can be specified</td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td><code>&lt;service&gt;</code> labels are used to label services</td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td><code>&lt;replicaSet&gt;</code> labels are for replica set and replication controller</td>
</tr>
<tr>
<td><i class="conum" data-value="5"></i><b>5</b></td>
<td><code>&lt;pod&gt;</code> holds labels for pod specifications in replication controller, replica sets and deployments</td>
</tr>
<tr>
<td><i class="conum" data-value="6"></i><b>6</b></td>
<td><code>&lt;deployment&gt;</code> is for labels on deployments (kubernetes) and deployment configs (openshift)</td>
</tr>
<tr>
<td><i class="conum" data-value="7"></i><b>7</b></td>
<td>The subelements are also available for specifying annotations.</td>
</tr>
<tr>
<td><i class="conum" data-value="8"></i><b>8</b></td>
<td><code>&lt;remotes&gt;</code> you can set location of fragments as <code>URL</code>.</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Labels and annotations can be specified in free form as a map. In this map, the element name is the name of the label or annotation respectively, whereas the content is the value to set.</p>
</div>
<div class="paragraph">
<p>The following subelements are possible for <code>&lt;labels&gt;</code> and <code>&lt;annotations&gt;</code> :</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 6. Label and annotation configuration</caption>
<colgroup>
<col style="width: 14.2857%;">
<col style="width: 85.7143%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Element</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>all</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All entries specified in the <code>&lt;all&gt;</code> sections are applied to all resource objects created.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>deployment</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Labels and annotations applied to <code>Deployment</code> (for Kubernetes).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>pod</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Labels and annotations applied pod specification as used in <code>ReplicationController</code>, <code>ReplicaSets</code>, <code>Deployments</code> and <code>DeploymentConfigs</code> objects.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>replicaSet</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Labels and annotations applied to <code>ReplicaSet</code> and <code>ReplicationController</code> objects.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>service</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Labels and annotations applied to <code>Service</code> objects.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="resource-secrets">5.1.2. Secrets</h4>
<div class="paragraph">
<p>Once you&#8217;ve configured some docker registry credentials into <code>~/.m2/setting.xml</code>, as explained in the
<a href="#authentication">Authentication</a> section, you can create Kubernetes secrets from a server declaration.</p>
</div>
<div class="paragraph">
<p><strong>XML configuration</strong></p>
</div>
<div class="paragraph">
<p>You can create a secret using xml configuration in the <code>pom.xml</code> file. It should contain the following fields:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 12.5%;">
<col style="width: 12.5%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">key</th>
<th class="tableblock halign-left valign-top">required</th>
<th class="tableblock halign-left valign-top">description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>dockerServerId</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">the server id which is configured in
<code>~/.m2/setting.xml</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>name</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">this will be used as name of the kubernetes secret resource</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>namespace</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">the secret resource will be applied to the specific
namespace, if provided</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>This is best explained by an example.</p>
</div>
<div class="listingblock">
<div class="title">Example for XML configuration</div>
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;properties&gt;
&lt;jkube.docker.registry&gt;docker.io&lt;/docker.registry&gt;
&lt;/properties&gt;</code></pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;configuration&gt;
&lt;resources&gt;
&lt;secrets&gt;
&lt;secret&gt;
&lt;dockerServerId&gt;${docker.registry}&lt;/dockerServerId&gt;
&lt;name&gt;mydockerkey&lt;/name&gt;
&lt;/secret&gt;
&lt;/secrets&gt;
&lt;/resources&gt;
&lt;/configuration&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><strong>Yaml fragment with annotation</strong></p>
</div>
<div class="paragraph">
<p>You can create a secret using a yaml fragment. You can reference the docker server id with an annotation
<code>maven.jkube.io/dockerServerId</code>. The yaml fragment file should be put under
the <code>src/main/jkube/</code> folder.</p>
</div>
<div class="listingblock">
<div class="title">Example</div>
<div class="content">
<pre class="highlight"><code class="language-yaml" data-lang="yaml">apiVersion: v1
kind: Secret
metadata:
name: mydockerkey
namespace: default
annotations:
maven.jkube.io/dockerServerId: ${docker.registry}
type: kubernetes.io/dockercfg</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="resource-validation">5.1.3. Resource Validation</h4>
<div class="paragraph">
<p>Resource goal also validates the generated resource descriptors using API specification of <a href="https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json">Kubernetes</a>.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 7. Validation Configuration</caption>
<colgroup>
<col style="width: 12.5%;">
<col style="width: 75%;">
<col style="width: 12.5%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Element</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Property</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>skipResourceValidation</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If value is set to <code>true</code> then resource validation is skipped. This may be useful if resource validation is failing
for some reason but you still want to continue the deployment.</p>
<p class="tableblock"> Default is <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.skipResourceValidation</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>failOnValidationError</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If value is set to <code>true</code> then any validation error will block the plugin execution. A warning will be printed
otherwise.</p>
<p class="tableblock"> Default is <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.failOnValidationError</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="Supported-Properties-Resource">5.1.4. Supported Properties for Resource goal</h4>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 8. Options available with resource goal</caption>
<colgroup>
<col style="width: 12.5%;">
<col style="width: 75%;">
<col style="width: 12.5%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Element</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Property</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>profile</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Profile to use. A profile contains the enrichers and generators to use as well as their configuration. Profiles are
looked up in the classpath and can be provided as yaml files.</p>
<p class="tableblock"> Defaults to <code>default</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.profile</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>sidecar</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable sidecar behavior or not. By default pod specs are merged into main application container.</p>
<p class="tableblock"> Defaults to <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.sidecar</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>skipHealthCheck</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to skip health checks addition in generated resources or not.</p>
<p class="tableblock"> Defaults to <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.skipHealthCheck</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>workDir</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The JKube working directory. Defaults to <code>${project.build.directory}/jkube</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.workDir</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>environment</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Environment name where resources are placed. For example, if you set this property to dev and resourceDir is the
default one, plugin will look at <code>src/main/jkube/dev</code>.</p>
<p class="tableblock"> Defaults to <code>null</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.environment</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>useProjectClassPath</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Should we use the project&#8217;s compile time classpath to scan for additional enrichers/generators.</p>
<p class="tableblock"> Defaults to <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.useProjectClassPath</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>resourceDir</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Folder where to find project specific files.</p>
<p class="tableblock"> Defaults to <code>${basedir}/src/main/jkube</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.resourceDir</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>targetDir</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The generated Kubernetes manifests target direcotry.</p>
<p class="tableblock"> Defaults to <code>${project.build.outputDirectory}/META-INF/jkube</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.targetDir</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>resourceType</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The artifact type for attaching the generated resource file to the project. Can be either 'json' or 'yaml'.</p>
<p class="tableblock"> Defaults to <code>yaml</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.resourceType</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>mergeWithDekorate</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">When resource generation is delegated to Dekorate, should JKube resources be merged with Dekorate generated ones.</p>
<p class="tableblock"> Defaults to <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.mergeWithDekorate</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>interpolateTemplateParameters</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Interpolate parameter values from <code>*template.yml</code> fragments in the generated resource list (<code>kubernetes.yml</code>).</p>
<p class="tableblock"> This is useful when using JKube in combination with Helm.</p>
<p class="tableblock"> Placeholders for variables defined in template files can be used in the different resource fragments. Helm generated
charts will contain these placeholders/parameters.</p>
<p class="tableblock"> For <code>resource</code> goal, these placeholders are replaced in the
aggregated resource list YAML file (not in the individual generated resources) if this option is enabled.</p>
<p class="tableblock"> Defaults to <code>true</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.interpolateTemplateParameters</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>skipResource</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Skip resource generation.</p>
<p class="tableblock"> Defaults to <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.skip.resource</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>createExternalUrls</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Should we create external Ingress for any LoadBalancer Services which don&#8217;t already have them.</p>
<p class="tableblock"> Defaults to <code>false</code>.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.createExternalUrls</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>domain</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Domain added to the Service ID when creating Kubernetes Ingresses or OpenShift routes.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.domain</code></p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect2">
<h3 id="jkube:build">5.2. <strong>k8s:build</strong></h3>
<div class="paragraph">
<p>This goal is for building Docker images.</p>
</div>
<div class="sect3">
<h4 id="build-kubernetes">5.2.1. Kubernetes Build</h4>
<div class="paragraph">
<p>A normal Docker build is performed by default. The connection configuration to
access the Docker daemon is described in <a href="#access-configuration">Access Configuration</a>.</p>
</div>
<div class="paragraph">
<p>In order to make the generated images available to the Kubernetes cluster the generated images need to be pushed to a
registry with the goal <a href="#jkube:push"><strong>k8s:push</strong></a>. This is not necessary for single node clusters, though as there is no need to
distribute images.</p>
</div>
</div>
<div class="sect3">
<h4 id="build-goal-configuration">5.2.2. Configuration (XML)</h4>
<div class="paragraph">
<p>The following sections describe the usual configuration, which is similar to the build configuration used in the
<a href="https://dmp.fabric8.io">docker-maven-plugin</a>.</p>
</div>
<div class="paragraph">
<p>In addition a more automatic way for creating predefined build configuration can be performed with so called <a href="#generators">Generators</a>. Generators are very flexible and can be easily created. These are described in an extra <a href="#generators">section</a>.</p>
</div>
<div class="paragraph">
<p>Global configuration parameters specify overall behavior common for all images to build. Some of the configuration options are shared with other goals.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 9. Global configuration</caption>
<colgroup>
<col style="width: 14.2857%;">
<col style="width: 71.4285%;">
<col style="width: 14.2858%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Element</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Property</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>buildStrategy</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Defines what build strategy to choose while building container image.
Possible values are <code>docker</code> and <code>jib</code> out of which <code>docker</code> is default.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.build.strategy</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>apiVersion</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use this variable if you are using an older version of docker not compatible with the current default use to
communicate with the server.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.docker.apiVersion</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>authConfig</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Authentication information when pulling from or pushing to Docker registry. There is a dedicated section
<a href="#authentication">Authentication</a> for how to do security.</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>autoPull</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Decide how to pull missing base images or images to start:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>on</code> : Automatic download any missing images (default)</p>
</li>
<li>
<p><code>off</code> : Automatic pulling is switched off</p>
</li>
<li>
<p><code>always</code> : Pull images always even when they already exist locally</p>
</li>
<li>
<p><code>once</code> : For multi-module builds images are only checked once and pulled for the whole build.</p>
</li>
</ul>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.docker.autoPull</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>buildRecreate</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>If the effective <a href="#build-mode">mode</a> is <code>openshift</code> then this option decides how the OpenShift resource objects
associated with the build should be treated when they already exist:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>buildConfig</code> or <code>bc</code> : Only the BuildConfig is recreated</p>
</li>
<li>
<p><code>imageStream</code> or <code>is</code> : Only the ImageStream is recreated</p>
</li>
<li>
<p><code>all</code> : Both, BuildConfig and ImageStream are recreated</p>
</li>
<li>
<p><code>none</code> : Neither BuildConfig nor ImageStream is recreated</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The default is <code>none</code>. If you provide the property without value then <code>all</code> is assumed, so everything gets recreated.</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.build.recreate</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="image-pull-policy"></a> <strong>imagePullPolicy</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Specify whether images should be pull when looking for base images while building or images for starting.
This property can take the following values (case insensitive):</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>IfNotPresent</code>: Automatic download any missing images (default)</p>
</li>
<li>
<p><code>Never</code> : Automatic pulling is switched off always</p>
</li>
<li>
<p><code>Always</code> : Pull images always even when they already exist locally.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>By default a progress meter is printed out on the console, which is omitted when using Maven in batch mode (option <code>-B</code>). A very simplified progress meter is provided when using no color output (i.e. with <code>-Djkube.useColor=false</code>).</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.docker.imagePullPolicy</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>certPath</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Path to SSL certificate when SSL is used for communicating with the Docker daemon. These certificates are normally
stored in <code>~/.docker/</code>. With this configuration the path can be set explicitly. If not set, the fallback is first
taken from the environment variable <code>DOCKER_CERT_PATH</code> and then as last resort <code>~/.docker/</code>. The keys in this are
expected with it standard names <code>ca.pem</code>, <code>cert.pem</code> and <code>key.pem</code>.
Please refer to the <a href="https://docs.docker.com/articles/https">Docker documentation</a> for more information about SSL
security with Docker.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>jkube.docker.certPath</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>dockerHost</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>The URL of the Docker Daemon. If this configuration option is not given, then the optional <code>&lt;machine&gt;</code> configuration
section is consulted. The scheme of the URL can be either given directly as <code>http</code> or <code>https</code>
depending on whether plain HTTP communication is enabled or SSL should
be used. Alternatively the scheme could be <code>tcp</code> in which case the
protocol is determined via the IANA assigned port: 2375 for <code>http</code>
and 2376 for <code>https</code>. Finally, Unix sockets are supported by using
the scheme <code>unix</code> together with the filesystem path to the unix socket.</p>
</div>
<div class="paragraph">
<p>The discovery sequence used by the docker-maven-plugin to determine
the URL is:</p>
</div>
<div class="olist arabic">
<ol