Commit 164234d7 authored by garciadeblas's avatar garciadeblas
Browse files

Features 11072-11074. Enhanced OSM declarative modelling for applications. Add cicd-full-suite OKA

parent 5244ed66
Loading
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
#######################################################################################
# Copyright ETSI Contributors and Others.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: jenkins
  namespace: jenkins
spec:
  chart:
    spec:
      chart: jenkins
      version: '13.4.20'
      reconcileStrategy: ChartVersion
      sourceRef:
        kind: HelmRepository
        name: bitnamicharts
        namespace: flux-system
  interval: 3m0s
  targetNamespace: jenkins
  values: {}
+48 −0
Original line number Diff line number Diff line
#######################################################################################
# Copyright ETSI Contributors and Others.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: jenkins-${APPNAME}
  namespace: flux-system
spec:
  dependsOn:
  - name: cicd-prereq-ns-${APPNAME}
  - name: cicd-prereq-helmrepos-${APPNAME}
  interval: 1h0m0s
  path: ./apps/cicd-full-suite/jenkins/manifests
  prune: true
  targetNamespace: ${TARGET_JENKINS_NS}
  wait: true
  sourceRef:
    kind: GitRepository
    name: sw-catalogs
    namespace: flux-system
  patches:
    - target:
        kind: HelmRelease
        version: v2beta1
        name: jenkins
        namespace: jenkins
      patch: |-
        - op: replace
          path: /metadata/name
          value: jenkins-${APPNAME}
        - op: replace
          path: /spec/targetNamespace
          value: ${TARGET_JENKINS_NS}
+236 −0
Original line number Diff line number Diff line
apiVersion: osm.softwaredefinition.io/v1alpha1
kind: AppBlueprint
metadata:
  # Replace by real app name
  name: cicd-full-suite
spec:
  # description: "Example App Blueprint"
  description: "Example App Instantiation"
  version: "1.0.0"
  ksus:
  - name: namespaces
    target:
      # Absolute path to KSU folder: repo-path + base-path + relative-path
      repo-path:
      - ${FLEET_REPOS_BASE}     # Default: `/repos`
      - fleet-osm               # Repo name.
      base-path:
      - ${PROJECT_NAME}   # Project name.
      - ${PROFILE_TYPE}
      - ${PROFILE_NAME}
      relative-path:      # App folder + ksu folder (in case of multiple KSUs)
      - ${APPNAME}
      - pre-requirements
      - namespaces
    patterns:
    - name: cicd-prereq-ns
      source:
        # Absolute path to OKA folder: repo-path + base-path + relative-path
        repo-path:
        - ${CATALOG_REPOS_BASE} # Default: `/repos`
        - sw-catalogs-osm       # Repo name
        base-path:              # Absolute path to OKA folder
        - apps          # OKA type
        - cicd-full-suite       # OKA folder
        relative-path:          # Pattern template folder (default: `templates/`)
        - pre-requirements
        - ns
        - templates
      # Pattern-specific parameters, to be added as needed (optional)
      # parameters: {}
      bricks:
      - name: cicd-prereq-ns
        type: basic
        kustomization:
          name: ${PATTERN_NAME}-${APPNAME}
          # OPTIONAL:
          # namespace: flux-system
        source:             # Absolute path to manifests referenced by the Kustomization (brick folder): base-path + relative-path
          repo-path:
          - ${CATALOG_REPOS_BASE} # Default: `/repos`
          - sw-catalogs-osm       # Repo name
          base-path:              # Absolute path to OKA folder
          - apps          # OKA type
          - cicd-full-suite       # OKA folder
          relative-path:          # Pattern template folder (default: `templates/`)
          - pre-requirements
          - ns
          - manifests
          - placeholder
        options:
          components:
          # - ../ns-gitlab
          - ../ns-jenkins
          # - ../ns-harbor
  - name: helmrepos
    target:
      # Absolute path to KSU folder: repo-path + base-path + relative-path
      repo-path:
      - ${FLEET_REPOS_BASE}     # Default: `/repos`
      - fleet-osm               # Repo name.
      base-path:
      - ${PROJECT_NAME}   # Project name.
      - ${PROFILE_TYPE}
      - ${PROFILE_NAME}
      relative-path:      # App folder + ksu folder (in case of multiple KSUs)
      - ${APPNAME}
      - pre-requirements
      - helmrepos
    patterns:
    - name: cicd-prereq-helmrepos
      source:
        # Absolute path to OKA folder: repo-path + base-path + relative-path
        repo-path:
        - ${CATALOG_REPOS_BASE} # Default: `/repos`
        - sw-catalogs-osm       # Repo name
        base-path:              # Absolute path to OKA folder
        - apps          # OKA type
        - cicd-full-suite       # OKA folder
        relative-path:          # Pattern template folder (default: `templates/`)
        - pre-requirements
        - helmrepos
        - templates
      # Pattern-specific parameters, to be added as needed (optional)
      # parameters: {}
      bricks:
      - name: cicd-prereq-helmrepos
        type: basic
        kustomization:
          name: ${PATTERN_NAME}-${APPNAME}
          # OPTIONAL:
          # namespace: flux-system
        source:             # Absolute path to manifests referenced by the Kustomization (brick folder): base-path + relative-path
          repo-path:
          - ${CATALOG_REPOS_BASE} # Default: `/repos`
          - sw-catalogs-osm       # Repo name
          base-path:              # Absolute path to OKA folder
          - apps          # OKA type
          - cicd-full-suite       # OKA folder
          relative-path:          # Pattern template folder (default: `templates/`)
          - pre-requirements
          - helmrepos
          - manifests
          - placeholder
        options:
          components:
          - ../bitnami
  - name: jenkins
    target:
      # Absolute path to KSU folder: repo-path + base-path + relative-path
      repo-path:
      - ${FLEET_REPOS_BASE}     # Default: `/repos`
      - fleet-osm               # Repo name.
      base-path:
      - ${PROJECT_NAME}   # Project name.
      - ${PROFILE_TYPE}
      - ${PROFILE_NAME}
      relative-path:      # App folder + ksu folder (in case of multiple KSUs)
      - ${APPNAME}
      - jenkins
    patterns:
    - name: jenkins
      source:
        # Absolute path to OKA folder: repo-path + base-path + relative-path
        repo-path:
        - ${CATALOG_REPOS_BASE} # Default: `/repos`
        - sw-catalogs-osm       # Repo name
        base-path:              # Absolute path to OKA folder
        - apps          # OKA type
        - cicd-full-suite       # OKA folder
        relative-path:          # Pattern template folder (default: `templates/`)
        - jenkins
        - templates
      # Pattern-specific parameters, to be added as needed (optional)
      # parameters: {}
      bricks:
      - name: jenkins
        type: HelmReleaseSet
        kustomization:
          name: jenkins-${APPNAME}
          # OPTIONAL:
          # namespace: flux-system
        source:
          repo-path:
          - ${CATALOG_REPOS_BASE}     # Default: `/repos`
          - sw-catalogs-osm   # Repo name
          base-path:          # Absolute path to OKA folder
          - apps      # OKA type
          - cicd-full-suite   # OKA folder
          relative-path:
          - jenkins
          - manifests
        hrset-values:
          - name: jenkins
            HelmRelease:
              name: jenkins-${APPNAME}
              namespace: ${TARGET_JENKINS_NS}
            # # Update accordingly:
            #
            # inline-values:
            #   key1: value1
            #   key2: value2
            #
            # # Update accordingly:
            #
            # valuesFrom:
            #   configMapKeyRef:
            #     name: jenkins-${APPNAME}
            #     # OPTIONAL:
            #     # key: values.yaml
            #
            # # Update accordingly:
            #
              # secretKeyRef:
              #   name: jenkins-${APPNAME}
              #   # OPTIONAL:
              #   # key: values.yaml
            #
            # # Update accordingly:
            #
            # create-cm:      # If the map is empty, the ConfigMap will not be created
            #   cm-key1: cm-value1
            #   cm-key2: cm-value2
            #
            # # Update accordingly:
            #
            # create-secret:  # If the map is empty, the Secret will not be created
            #   env-values-reference: jenkins-${APPNAME}
            #


# parameters:
#   - name: replicaCount
#     description: "Number of replicas"
#     # default: 1
#     value: 1
#   - name: ingressHost
#     description: "Ingress hostname"
#     value: "ingress for-${APPNAME}"
# readinessChecks:
#   - resource:
#       kind: Deployment
#       name: main-deployment-${APPNAME}
#     condition:
#       type: Available
#       status: "True"
#   - resource:
#       kind: Service
#       name: main-service
#     condition:
#       type: Ready
# TODO:
# outputValues:
#   - name: apiEndpoint
#     valueFrom:
#       serviceIP:
#         name: main-service
#   - name: adminPassword
#     valueFrom:
#       secretKeyRef:
#         name: app-secrets
#         key: admin-password
# TODO:
# dependencies:
#   - name: nginx-ingress
#     type: InfraController
#     version: ">=1.0.0"
+4 −0
Original line number Diff line number Diff line
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
resources:
  - repo.yaml
+26 −0
Original line number Diff line number Diff line
#######################################################################################
# Copyright ETSI Contributors and Others.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
  name: bitnamicharts
  namespace: flux-system
spec:
  interval: 10m0s
  type: oci
  url: oci://registry-1.docker.io/bitnamicharts
Loading