├── .gitignore ├── LICENSE ├── aggregator ├── pom.xml └── src │ └── main │ └── resources │ └── index.jelly ├── arquillian-steps ├── pom.xml ├── readme.md └── src │ └── main │ ├── java │ └── io │ │ └── fabric8 │ │ └── kubernetes │ │ └── pipeline │ │ └── arquillian │ │ └── cube │ │ └── kubernetes │ │ ├── AbstractSessionManagerStep.java │ │ ├── AbstractSessionManagerStepExecution.java │ │ ├── AbstractStep.java │ │ ├── AbstractStepExecution.java │ │ ├── CreateEnvironmentStep.java │ │ ├── CreateEnvironmentStepExecution.java │ │ ├── CubeDSL.java │ │ ├── EmptyDependencyResolver.java │ │ ├── GetNamespaceStep.java │ │ ├── GetNamespaceStepExecution.java │ │ ├── InNamespaceStep.java │ │ ├── InNamespaceStepExecution.java │ │ ├── InSessionStep.java │ │ ├── InSessionStepExecution.java │ │ ├── MapAnnotationProvider.java │ │ ├── MapLabelProvider.java │ │ ├── NamespaceDestructionCallback.java │ │ ├── NamespaceExpander.java │ │ ├── SessionManagerStopCallback.java │ │ └── StreamLogger.java │ └── resources │ ├── index.jelly │ └── io │ └── fabric8 │ └── kubernetes │ └── pipeline │ └── arquillian │ └── cube │ └── kubernetes │ ├── CreateEnvironmentSessionStep │ ├── config.jelly │ └── help-name.html │ ├── Cube.groovy │ ├── InNamespaceStep │ ├── config.jelly │ └── help-name.html │ └── InSessionStep │ ├── config.jelly │ └── help-name.html ├── circle.yml ├── core ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fabric8 │ │ └── workflow │ │ └── core │ │ ├── ClassWhiteList.java │ │ └── Constants.java │ └── test │ └── java │ ├── io │ └── fabric8 │ │ └── kubernetes │ │ └── pipeline │ │ └── KubernetesTestUtil.java │ └── org │ └── jvnet │ └── hudson │ └── test │ └── JenkinsRuleNonLocalhost.java ├── devops-steps ├── pom.xml ├── readme.md └── src │ ├── main │ ├── java │ │ └── io │ │ │ └── fabric8 │ │ │ └── kubernetes │ │ │ └── pipeline │ │ │ └── devops │ │ │ ├── ApplyStep.java │ │ │ ├── ApplyStepExecution.java │ │ │ ├── ApproveReceivedEventStep.java │ │ │ ├── ApproveReceivedEventStepExecution.java │ │ │ ├── ApproveRequestedEventStep.java │ │ │ ├── ApproveRequestedEventStepExecution.java │ │ │ ├── CreateEventStep.java │ │ │ ├── CreateEventStepExecution.java │ │ │ ├── EnvironmentRollout.java │ │ │ ├── KubernetesClientRef.java │ │ │ ├── ServiceResourceUtil.java │ │ │ ├── elasticsearch │ │ │ ├── ApprovalEventDTO.java │ │ │ ├── BuildDTO.java │ │ │ ├── BuildListener.java │ │ │ ├── CauseDTO.java │ │ │ ├── DTOSupport.java │ │ │ ├── DeploymentEventDTO.java │ │ │ ├── ElasticsearchClient.java │ │ │ └── JsonUtils.java │ │ │ └── git │ │ │ ├── GitConfig.java │ │ │ ├── GitInfoCallback.java │ │ │ └── RepositoryListenerCallback.java │ └── resources │ │ └── io │ │ └── fabric8 │ │ └── kubernetes │ │ └── pipeline │ │ └── devops │ │ └── environmentAnnotations.properties │ └── test │ ├── java │ └── io │ │ └── fabric8 │ │ └── kubernetes │ │ └── pipeline │ │ └── devops │ │ ├── ApplyTest.java │ │ ├── ServiceResourceUtilTest.java │ │ └── elasticsearch │ │ ├── BaseSendEvent.java │ │ ├── BuildEvent.java │ │ ├── CreateApprovalEvent.java │ │ ├── DeploymentEvent.java │ │ └── UpdateApprovalEvent.java │ └── resources │ ├── kubernetesJsonWithRegistry.json │ ├── kubernetesJsonWithoutRegistry.json │ └── services │ ├── invalidservice1.yaml │ ├── invalidservice2.yaml │ ├── invalidservice3.yaml │ ├── validservice3.yaml │ └── validservice4.yaml ├── doc └── scc-example.json ├── header.txt ├── kubernetes-steps ├── pom.xml ├── readme.md └── src │ ├── main │ ├── java │ │ └── io │ │ │ └── fabric8 │ │ │ └── kubernetes │ │ │ └── pipeline │ │ │ ├── AbstractDockerStep.java │ │ │ ├── BuildImageStep.java │ │ │ ├── BuildImageStepExecution.java │ │ │ ├── KubernetesDSL.java │ │ │ ├── KubernetesFacade.java │ │ │ ├── PodExecDecorator.java │ │ │ ├── PodExecProc.java │ │ │ ├── PodWatcher.java │ │ │ ├── PushImageStep.java │ │ │ ├── PushImageStepExecution.java │ │ │ ├── TagImageStep.java │ │ │ ├── TagImageStepExecution.java │ │ │ ├── WithPodStep.java │ │ │ └── WithPodStepExecution.java │ └── resources │ │ ├── META-INF │ │ └── hudson.remoting.ClassFilter │ │ ├── index.jelly │ │ └── io │ │ └── fabric8 │ │ └── kubernetes │ │ └── pipeline │ │ ├── BuildImageStep │ │ ├── config.jelly │ │ ├── help-email.html │ │ ├── help-name.html │ │ ├── help-password.html │ │ ├── help-path.html │ │ ├── help-rm.html │ │ ├── help-timeout.html │ │ ├── help-username.html │ │ └── help.html │ │ ├── Kubernetes.groovy │ │ ├── KubernetesDSL │ │ └── help.jelly │ │ ├── PushImageStep │ │ ├── config.jelly │ │ ├── help-email.html │ │ ├── help-name.html │ │ ├── help-password.html │ │ ├── help-registry.html │ │ ├── help-timeout.html │ │ ├── help-username.html │ │ └── help.html │ │ ├── TagImageStep │ │ ├── config.jelly │ │ ├── help-email.html │ │ ├── help-name.html │ │ ├── help-password.html │ │ ├── help-repo.html │ │ ├── help-tag.html │ │ ├── help-username.html │ │ └── help.html │ │ └── WithPodStep │ │ ├── config.jelly │ │ ├── help-inheritFrom.html │ │ ├── help-nodeSelector.html │ │ └── help-serviceAccount.html │ └── test │ ├── java │ └── io │ │ └── fabric8 │ │ └── kubernetes │ │ └── pipeline │ │ └── KubernetesPipelineTest.java │ └── resources │ ├── arquillian.xml │ └── io │ └── fabric8 │ └── kubernetes │ └── pipeline │ └── simpleMaven.groovy ├── pom.xml └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Maven template 3 | target/ 4 | work/ 5 | pom.xml.tag 6 | pom.xml.releaseBackup 7 | pom.xml.versionsBackup 8 | pom.xml.next 9 | release.properties 10 | dependency-reduced-pom.xml 11 | buildNumber.properties 12 | .mvn/timing.properties 13 | 14 | 15 | ### Java template 16 | *.class 17 | 18 | # Mobile Tools for Java (J2ME) 19 | .mtj.tmp/ 20 | 21 | # Package Files # 22 | *.jar 23 | *.war 24 | *.ear 25 | 26 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 27 | hs_err_pid* 28 | 29 | 30 | ### JetBrains template 31 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion 32 | 33 | *.iml 34 | 35 | ## Directory-based project format: 36 | .idea/ 37 | # if you remove the above rule, at least ignore the following: 38 | 39 | # User-specific stuff: 40 | # .idea/workspace.xml 41 | # .idea/tasks.xml 42 | # .idea/dictionaries 43 | 44 | # Sensitive or high-churn files: 45 | # .idea/dataSources.ids 46 | # .idea/dataSources.xml 47 | # .idea/sqlDataSources.xml 48 | # .idea/dynamic.xml 49 | # .idea/uiDesigner.xml 50 | 51 | # Gradle: 52 | # .idea/gradle.xml 53 | # .idea/libraries 54 | 55 | # Mongo Explorer plugin: 56 | # .idea/mongoSettings.xml 57 | 58 | ## File-based project format: 59 | *.ipr 60 | *.iws 61 | 62 | ## Plugin-specific files: 63 | 64 | # IntelliJ 65 | /out/ 66 | 67 | # mpeltonen/sbt-idea plugin 68 | .idea_modules/ 69 | 70 | # JIRA plugin 71 | atlassian-ide-plugin.xml 72 | 73 | # Crashlytics plugin (for Android Studio and IntelliJ) 74 | com_crashlytics_export_strings.xml 75 | crashlytics.properties 76 | crashlytics-build.properties 77 | 78 | .DS_Store 79 | .classpath 80 | .project 81 | velocity.log 82 | .settings 83 | -------------------------------------------------------------------------------- /aggregator/src/main/resources/index.jelly: -------------------------------------------------------------------------------- 1 | 2 |
9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | package io.fabric8.kubernetes.pipeline.devops;
18 |
19 | import com.fasterxml.jackson.annotation.JsonInclude;
20 |
21 | import java.util.Map;
22 |
23 | /**
24 | * The YAML structure to store the service URLs and deployment versions for an environment
25 | */
26 | @JsonInclude(JsonInclude.Include.NON_EMPTY)
27 | public class EnvironmentRollout {
28 | private final String environmentName;
29 | private final Map
5 | The
8 | Methods needing a slave will implicitly run a
12 | If you are using Kubernetes build pods, then you must ensure that kubernetes
variable offers convenient access to Kubernetes and Docker related functions from a Workflow script.
6 | node {…}
block if you have not wrapped them in one.
9 | It is a good idea to enclose a block of steps which should all run on the same node in such a block yourself.
10 | node {…}
should be able to share its workspace.
13 | This requires that the node is exposing the workspace as hostPath volume mount.
14 |