--- apiVersion: "v1" kind: "Template" labels: {} metadata: annotations: fabric8.fabric8-docker-registry/iconUrl: "https://cdn.rawgit.com/fabric8io/fabric8-devops/master/fabric8-docker-registry/src/main/fabric8/icon.png" description: "Provides the core [Continuous Delivery platform](http://fabric8.io/guide/cdelivery.html)\ \ using [Gogs](http://gogs.io/), [Jenkins](https://jenkins-ci.org/), [Nexus](http://www.sonatype.org/nexus/),\ \ [Gerrit](https://www.gerritcodereview.com/) and [SonarQube](http://www.sonarqube.org/)" fabric8.fabric8-docker-registry/summary: "[Docker Registry](https://github.com/docker/distribution)\ \ - A private docker registry" fabric8.fabric8-forge/iconUrl: "https://cdn.rawgit.com/fabric8io/fabric8-forge/master/fabric8-forge/src/main/fabric8/icon.svg" fabric8.fabric8-forge/summary: "Fabric8 :: Forge" fabric8.gogs/iconUrl: "https://cdn.rawgit.com/fabric8io/fabric8-devops/master/gogs/src/main/fabric8/icon.png" fabric8.gogs/summary: "[Gogs](http://gogs/) - A self-hosted Git service written\ \ in Go" fabric8.jenkins/summary: "[Jenkins](http://jenkins-ci.org/) extendable open source\ \ continuous integration server" fabric8.jenkins/iconUrl: "https://cdn.rawgit.com/fabric8io/fabric8-devops/master/jenkins/src/main/fabric8/icon.svg" fabric8.nexus/summary: "[Nexus](http://www.sonatype.org/nexus/) - A maven repository\ \ manager" fabric8.nexus/iconUrl: "https://cdn.rawgit.com/fabric8io/fabric8-devops/master/nexus/src/main/fabric8/icon.png" fabric8.cd-pipeline/summary: "Creates the Continuous Delivery Pipeline via: gogs,\ \ jenkins, nexus, gerrit and sonaqube" fabric8.cd-pipeline/iconUrl: "https://cdn.rawgit.com/fabric8io/fabric8-forge/master/packages/cd-pipeline/src/main/fabric8/icon.svg" labels: {} name: "cd-pipeline" objects: - apiVersion: "v1" data: password: "UmVkSGF0JDE=" username: "Z29nc2FkbWlu" kind: "Secret" metadata: annotations: {} labels: package: "cd-pipeline" name: "gogs-https-${KUBERNETES_ADMIN_USER}" namespace: "user-secrets-source-${KUBERNETES_ADMIN_USER}" - apiVersion: "v1" imagePullSecrets: [] kind: "ServiceAccount" metadata: annotations: {} labels: package: "cd-pipeline" name: "jenkins" secrets: - name: "jenkins-git-ssh" - name: "jenkins-master-ssh" - name: "jenkins-release-gpg" - apiVersion: "v1" kind: "OAuthClient" metadata: annotations: {} labels: package: "cd-pipeline" name: "gogs" redirectURIs: - "http://localhost:3000" - "http://gogs.${DOMAIN}" - "https://gogs.${DOMAIN}" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: project: "fabric8-docker-registry" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" name: "fabric8-docker-registry" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - port: 80 protocol: "TCP" targetPort: 5000 selector: project: "fabric8-docker-registry" provider: "fabric8" group: "io.fabric8.devops.apps" type: "LoadBalancer" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: project: "fabric8-forge" provider: "fabric8" version: "2.2.116" group: "io.fabric8.forge.apps" package: "cd-pipeline" name: "fabric8-forge" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - port: 80 protocol: "TCP" targetPort: 8080 selector: project: "fabric8-forge" provider: "fabric8" group: "io.fabric8.forge.apps" type: "LoadBalancer" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: provider: "fabric8" project: "gogs" package: "cd-pipeline" name: "gogs" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - port: 80 protocol: "TCP" targetPort: 3000 selector: provider: "fabric8" project: "gogs" type: "LoadBalancer" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: provider: "fabric8" project: "gogs" package: "cd-pipeline" name: "gogs-ssh" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - port: 22 protocol: "TCP" targetPort: 22 selector: provider: "fabric8" project: "gogs" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: provider: "fabric8" project: "jenkins" package: "cd-pipeline" name: "jenkins" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - name: "http" port: 80 protocol: "TCP" targetPort: 8080 - name: "agent" port: 50000 protocol: "TCP" targetPort: 50000 selector: provider: "fabric8" project: "jenkins" type: "LoadBalancer" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: provider: "fabric8" project: "jenkins" package: "cd-pipeline" name: "jenkins" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - name: "http" port: 80 protocol: "TCP" targetPort: 8080 - name: "agent" port: 50000 protocol: "TCP" targetPort: 50000 selector: provider: "fabric8" project: "jenkins" type: "LoadBalancer" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: provider: "fabric8" project: "jenkins" package: "cd-pipeline" name: "jenkins" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - name: "http" port: 80 protocol: "TCP" targetPort: 8080 - name: "agent" port: 50000 protocol: "TCP" targetPort: 50000 selector: provider: "fabric8" project: "jenkins" type: "LoadBalancer" - apiVersion: "v1" kind: "Service" metadata: annotations: {} labels: project: "nexus" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" name: "nexus" spec: deprecatedPublicIPs: [] externalIPs: [] ports: - port: 80 protocol: "TCP" targetPort: 8081 selector: project: "nexus" provider: "fabric8" group: "io.fabric8.devops.apps" type: "LoadBalancer" - apiVersion: "v1" kind: "ReplicationController" metadata: annotations: fabric8.io/git-branch: "release-v2.2.104" fabric8.io/git-commit: "df8e36b08230aa1698bb6c61012911c9662fc23d" fabric8.io/build-id: "6" labels: project: "fabric8-docker-registry" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" name: "fabric8-docker-registry" spec: replicas: 1 selector: project: "fabric8-docker-registry" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" template: metadata: annotations: {} labels: project: "fabric8-docker-registry" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" spec: containers: - args: [] command: [] env: - name: "KUBERNETES_NAMESPACE" valueFrom: fieldRef: fieldPath: "metadata.namespace" image: "registry:2" imagePullPolicy: "IfNotPresent" name: "fabric8-docker-registry" ports: - containerPort: 5000 name: "http" - containerPort: 8778 name: "jolokia" securityContext: {} volumeMounts: [] imagePullSecrets: [] nodeSelector: {} volumes: [] - apiVersion: "v1" kind: "ReplicationController" metadata: annotations: fabric8.io/git-branch: "release-v2.2.116" fabric8.io/git-commit: "b7bca80936d592958a67963a7b8cf25c4249a1ae" fabric8.io/build-id: "6" labels: project: "fabric8-forge" provider: "fabric8" version: "2.2.116" group: "io.fabric8.forge.apps" package: "cd-pipeline" name: "fabric8-forge" spec: replicas: 1 selector: project: "fabric8-forge" provider: "fabric8" version: "2.2.116" group: "io.fabric8.forge.apps" template: metadata: annotations: {} labels: project: "fabric8-forge" provider: "fabric8" version: "2.2.116" group: "io.fabric8.forge.apps" package: "cd-pipeline" spec: containers: - args: [] command: [] env: - name: "JENKINS_SEED_JOB" value: "seed" - name: "FABRIC8_DEFAULT_ENVIRONMENTS" value: "${FABRIC8_DEFAULT_ENVIRONMENTS}" - name: "JENKINS_WORKFLOW_GIT_REPOSITORY" value: "${JENKINS_WORKFLOW_GIT_REPOSITORY}" - name: "KUBERNETES_TRUST_CERTIFICATES" value: "true" - name: "SKIP_TLS_VERIFY" value: "true" - name: "JENKINS_GOGS_PASSWORD" value: "${JENKINS_GOGS_PASSWORD}" - name: "JENKINS_GOGS_USER" value: "${JENKINS_GOGS_USER}" - name: "FABRIC8_ARCHETYPES_VERSION" value: "2.2.96" - name: "JAVA_OPTIONS" value: "-Dorg.apache.maven.log_transfer=true" - name: "JENKINS_GOGS_EMAIL" value: "${JENKINS_GOGS_EMAIL}" - name: "KUBERNETES_MASTER" value: "https://kubernetes.default.svc" - name: "KUBERNETES_NAMESPACE" valueFrom: fieldRef: fieldPath: "metadata.namespace" image: "fabric8/fabric8-forge:2.2.116" name: "fabric8-forge" ports: - containerPort: 8778 name: "jolokia" readinessProbe: httpGet: path: "/_ping" port: 8080 initialDelaySeconds: 30 securityContext: {} volumeMounts: [] imagePullSecrets: [] nodeSelector: {} serviceAccountName: "fabric8" volumes: [] - apiVersion: "v1" kind: "ReplicationController" metadata: annotations: fabric8.io/git-commit: "df8e36b08230aa1698bb6c61012911c9662fc23d" fabric8.io/git-branch: "release-v2.2.104" fabric8.io/build-id: "6" labels: project: "gogs" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" name: "gogs" spec: replicas: 1 selector: project: "gogs" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" template: metadata: annotations: {} labels: project: "gogs" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" spec: containers: - args: [] command: [] env: - name: "GOGS_SERVER__ROOT_URL" value: "${GOGS_SERVER_PROTOCOL}://${GOGS_SERVER_DOMAIN}" - name: "ADMIN_USER_EMAIL" value: "${JENKINS_GOGS_EMAIL}" - name: "ADMIN_USER_PASSWORD" value: "${JENKINS_GOGS_PASSWORD}" - name: "GOGS_SERVER__PROTOCOL" value: "${GOGS_SERVER_PROTOCOL}" - name: "GOGS_OAUTH_OPENSHIFT__ENABLED" value: "true" - name: "ADMIN_USER_CREATE" value: "true" - name: "GOGS_OAUTH_OPENSHIFT__TOKEN_URL" value: "https://${DOMAIN}:8443/oauth/token" - name: "GOGS_OAUTH_OPENSHIFT__SCOPES" value: "https://${DOMAIN}:8443/console/user" - name: "GOGS_OAUTH_OPENSHIFT__AUTH_URL" value: "https://${DOMAIN}:8443/oauth/authorize" - name: "GOGS_WEBHOOK__TASK_INTERVAL" value: "true" - name: "GOGS_WEBHOOK__SKIP_TLS_VERIFY" value: "true" - name: "GOGS_SERVER__DOMAIN" value: "${GOGS_SERVER_DOMAIN}" - name: "ADMIN_USER_NAME" value: "${JENKINS_GOGS_USER}" - name: "GOGS_OAUTH_TWITTER__ENABLED" value: "false" - name: "GOGS_OAUTH__ENABLED" value: "true" - name: "KUBERNETES_ADMIN_USER" value: "${KUBERNETES_ADMIN_USER}" - name: "GOGS_OAUTH_OPENSHIFT__CLIENT_ID" value: "gogs" - name: "KUBERNETES_NAMESPACE" valueFrom: fieldRef: fieldPath: "metadata.namespace" image: "fabric8/gogs:0.6.1" imagePullPolicy: "IfNotPresent" name: "gogs" ports: - containerPort: 22 name: "ssh" - containerPort: 3000 name: "http" securityContext: {} volumeMounts: [] imagePullSecrets: [] nodeSelector: {} volumes: [] - apiVersion: "v1" kind: "ReplicationController" metadata: annotations: fabric8.io/git-commit: "df8e36b08230aa1698bb6c61012911c9662fc23d" fabric8.io/git-branch: "release-v2.2.104" fabric8.io/build-id: "6" labels: project: "jenkins" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" name: "jenkins" spec: replicas: 1 selector: project: "jenkins" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" template: metadata: annotations: fabric8.io/secret-ssh-key: "jenkins-git-ssh,jenkins-master-ssh" fabric8.io/secret-maven-settings: "jenkins-maven-settings" fabric8.io/secret-github-api-token: "jenkins-github-api-token" fabric8.io/secret-gpg-key: "jenkins-release-gpg" fabric8.io/secret-docker-cfg: "jenkins-docker-cfg" labels: project: "jenkins" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" spec: containers: - args: [] command: [] env: - name: "DOMAIN" value: "${DOMAIN}" - name: "JENKINS_WORKFLOW_GIT_REPOSITORY" value: "${JENKINS_WORKFLOW_GIT_REPOSITORY}" - name: "JENKINS_GOGS_PASSWORD" value: "${JENKINS_GOGS_PASSWORD}" - name: "JENKINS_GOGS_USER" value: "${JENKINS_GOGS_USER}" - name: "JENKINS_GOGS_EMAIL" value: "${JENKINS_GOGS_EMAIL}" - name: "FABRIC8_CONSOLE" value: "http://fabric8.${DOMAIN}" - name: "JENKINS_JOBS_GIT_REPOSITORY" value: "${JENKINS_JOBS_GIT_REPOSITORY}" - name: "KUBERNETES_NAMESPACE" valueFrom: fieldRef: fieldPath: "metadata.namespace" image: "fabric8/jenkins-docker:latest" lifecycle: postStart: exec: command: - "/root/postStart.sh" name: "jenkins" ports: - containerPort: 50000 name: "slave" - containerPort: 8080 name: "http" securityContext: privileged: true volumeMounts: - mountPath: "/var/run/docker.sock" name: "data" readOnly: false - mountPath: "/home/jenkins/.docker" name: "jenkins-docker-cfg" readOnly: false imagePullSecrets: [] nodeSelector: {} serviceAccountName: "jenkins" volumes: - hostPath: path: "/var/run/docker.sock" name: "data" - name: "jenkins-docker-cfg" secret: secretName: "jenkins-docker-cfg" - apiVersion: "v1" kind: "ReplicationController" metadata: annotations: fabric8.io/git-branch: "release-v2.2.104" fabric8.io/git-commit: "df8e36b08230aa1698bb6c61012911c9662fc23d" fabric8.io/build-id: "6" labels: project: "nexus" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" name: "nexus" spec: replicas: 1 selector: project: "nexus" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" template: metadata: annotations: {} labels: project: "nexus" provider: "fabric8" version: "2.2.104" group: "io.fabric8.devops.apps" package: "cd-pipeline" spec: containers: - args: [] command: [] env: - name: "KUBERNETES_NAMESPACE" valueFrom: fieldRef: fieldPath: "metadata.namespace" image: "fabric8/nexus:2.2.104" imagePullPolicy: "IfNotPresent" name: "nexus" ports: - containerPort: 8081 name: "http" securityContext: {} volumeMounts: - mountPath: "/sonatype-work/storage" name: "nexus-storage" readOnly: false imagePullSecrets: [] nodeSelector: {} volumes: - emptyDir: medium: "" name: "nexus-storage" parameters: - description: "The email address of the Jenkins user on Gogs" name: "JENKINS_GOGS_EMAIL" value: "gogsadmin@fabric8.local" - description: "The user name for Jenkins to login to Gogs" name: "JENKINS_GOGS_USER" value: "gogsadmin" - description: "The list of default environment names to actual kubernetes namespaces" name: "FABRIC8_DEFAULT_ENVIRONMENTS" value: "Testing=${buildName}-testing,Staging=${buildName}-staging,Production=${buildName}-prod" - description: "The password for Jenkins to login to Gogs" name: "JENKINS_GOGS_PASSWORD" value: "RedHat$1" - description: "The git clone URL for the jenkins workflow repository which can be\ \ reused across projects" name: "JENKINS_WORKFLOW_GIT_REPOSITORY" value: "https://github.com/fabric8io/jenkins-workflow-library.git" - description: "The gogs server name" name: "GOGS_SERVER_DOMAIN" value: "gogs.vagrant.f8" - description: "The protocol for gogs to use; either http or https" name: "GOGS_SERVER_PROTOCOL" value: "http" - description: "The default Kubernetes admin user" name: "KUBERNETES_ADMIN_USER" value: "admin" - description: "The domain name applications are installed on" name: "DOMAIN" value: "vagrant.f8" - description: "Optional repository that contains a collection of build config.xml\ \ that will create Jenkins jobs when started. Example fabric8 release jobs https://github.com/fabric8io/fabric8-workflow-jobs-release.git" name: "JENKINS_JOBS_GIT_REPOSITORY"