removed stacks and added forgejo runner
This commit is contained in:
parent
1e0cb0ff92
commit
edfdc8561c
20 changed files with 12 additions and 729 deletions
|
@ -1,22 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane-integrations
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
spec:
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: argocd
|
||||
source:
|
||||
path: stacks/crossplane-integrations
|
||||
repoURL: 'https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot'
|
||||
targetRevision: HEAD
|
||||
project: default
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
|
@ -1,22 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: localstack-integration
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
spec:
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: argocd
|
||||
source:
|
||||
path: stacks/localstack-integration
|
||||
repoURL: 'https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot'
|
||||
targetRevision: HEAD
|
||||
project: default
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
|
@ -1,7 +1,7 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: prometheus
|
||||
name: forgejo-runner
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
|
@ -14,14 +14,14 @@ spec:
|
|||
- CreateNamespace=true
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: monitoring
|
||||
namespace: gitea
|
||||
sources:
|
||||
- repoURL: https://github.com/prometheus-community/helm-charts
|
||||
path: charts/prometheus
|
||||
- repoURL: https://forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/DevFW/forgejo-runner.git
|
||||
path: forgejo-runner
|
||||
targetRevision: HEAD
|
||||
helm:
|
||||
valueFiles:
|
||||
- $values/stacks/core/prometheus/values.yaml
|
||||
- $values/stacks/core/forgejo-runner/values.yaml
|
||||
- repoURL: https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
ref: values
|
6
kind/stacks/core/forgejo-runner/values.yaml
Normal file
6
kind/stacks/core/forgejo-runner/values.yaml
Normal file
|
@ -0,0 +1,6 @@
|
|||
registration:
|
||||
enabled: false
|
||||
token: ""
|
||||
# kubectl create secret generic forgejo-runner-token --from-literal=token=TOKENID
|
||||
|
||||
forgejoUrl: http://forgejo-http.gitea.svc.cluster.local:3000
|
|
@ -1,29 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: grafana
|
||||
namespace: argocd
|
||||
# namespace: monitoring
|
||||
labels:
|
||||
env: dev
|
||||
spec:
|
||||
project: default
|
||||
syncPolicy:
|
||||
automated:
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
destination:
|
||||
name: in-cluster
|
||||
# namespace: grafana
|
||||
namespace: monitoring
|
||||
sources:
|
||||
- repoURL: https://github.com/grafana/helm-charts
|
||||
path: charts/grafana
|
||||
targetRevision: HEAD
|
||||
helm:
|
||||
valueFiles:
|
||||
- $values/stacks/core/grafana/values.yaml
|
||||
- repoURL: https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot
|
||||
targetRevision: HEAD
|
||||
ref: values
|
|
@ -1,167 +0,0 @@
|
|||
rbac:
|
||||
create: true
|
||||
## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true)
|
||||
# useExistingRole: name-of-some-role
|
||||
# useExistingClusterRole: name-of-some-clusterRole
|
||||
pspEnabled: false
|
||||
pspUseAppArmor: false
|
||||
namespaced: false
|
||||
extraRoleRules: []
|
||||
# - apiGroups: []
|
||||
# resources: []
|
||||
# verbs: []
|
||||
extraClusterRoleRules: []
|
||||
# - apiGroups: []
|
||||
# resources: []
|
||||
# verbs: []
|
||||
serviceAccount:
|
||||
create: true
|
||||
name:
|
||||
nameTest:
|
||||
## ServiceAccount labels.
|
||||
labels: {}
|
||||
## Service account annotations. Can be templated.
|
||||
# annotations:
|
||||
# eks.amazonaws.com/role-arn: arn:aws:iam::123456789000:role/iam-role-name-here
|
||||
|
||||
## autoMount is deprecated in favor of automountServiceAccountToken
|
||||
# autoMount: false
|
||||
automountServiceAccountToken: false
|
||||
|
||||
replicas: 1
|
||||
|
||||
## Create a headless service for the deployment
|
||||
headlessService: false
|
||||
|
||||
## Should the service account be auto mounted on the pod
|
||||
automountServiceAccountToken: true
|
||||
|
||||
## Create HorizontalPodAutoscaler object for deployment type
|
||||
#
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 5
|
||||
targetCPU: "60"
|
||||
targetMemory: ""
|
||||
behavior: {}
|
||||
|
||||
## See `kubectl explain poddisruptionbudget.spec` for more
|
||||
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||||
podDisruptionBudget: {}
|
||||
# apiVersion: ""
|
||||
# minAvailable: 1
|
||||
# maxUnavailable: 1
|
||||
|
||||
## See `kubectl explain deployment.spec.strategy` for more
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
||||
deploymentStrategy:
|
||||
type: RollingUpdate
|
||||
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /api/health
|
||||
port: 3000
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /api/health
|
||||
port: 3000
|
||||
initialDelaySeconds: 60
|
||||
timeoutSeconds: 30
|
||||
failureThreshold: 10
|
||||
|
||||
# dns configuration for pod
|
||||
dnsPolicy: ~
|
||||
dnsConfig: {}
|
||||
# nameservers:
|
||||
# - 8.8.8.8
|
||||
# options:
|
||||
# - name: ndots
|
||||
# value: "2"
|
||||
# - name: edns0
|
||||
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 472
|
||||
runAsGroup: 472
|
||||
fsGroup: 472
|
||||
|
||||
containerSecurityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
|
||||
# Enable creating the grafana configmap
|
||||
createConfigmap: true
|
||||
|
||||
## Pod Labels
|
||||
# podLabels: {}
|
||||
|
||||
podPortName: grafana
|
||||
gossipPortName: gossip
|
||||
## Deployment annotations
|
||||
# annotations: {}
|
||||
|
||||
## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).
|
||||
## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.
|
||||
## ref: http://kubernetes.io/docs/user-guide/services/
|
||||
##
|
||||
service:
|
||||
enabled: true
|
||||
|
||||
|
||||
gettype: ClusterIP
|
||||
#type: NodePort
|
||||
|
||||
# Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
|
||||
ipFamilyPolicy: ""
|
||||
# Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
|
||||
ipFamilies: []
|
||||
loadBalancerIP: ""
|
||||
loadBalancerClass: ""
|
||||
loadBalancerSourceRanges: []
|
||||
#port: 90
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
#targetPort: 90
|
||||
# targetPort: 4181 To be used with a proxy extraContainer
|
||||
## Service annotations. Can be templated.
|
||||
annotations: {}
|
||||
labels: {}
|
||||
portName: service
|
||||
# Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp"
|
||||
appProtocol: ""
|
||||
|
||||
dashboardProviders: {}
|
||||
|
||||
dashboards: {}
|
||||
|
||||
|
||||
grafana.ini:
|
||||
server:
|
||||
domain: cnoe.localtest.me
|
||||
root_url: "%(protocol)s://%(domain)s/grafana"
|
||||
serve_from_sub_path: true
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
hosts:
|
||||
- cnoe.localtest.me
|
||||
path: /grafana
|
||||
|
||||
|
||||
#TODO: not yet!
|
||||
#datasources:
|
||||
# datasources.yaml:
|
||||
# apiVersion: 1
|
||||
# datasources:
|
||||
# - name: Prometheus
|
||||
# type: prometheus
|
||||
# url: http://prometheus-server.prometheus.svc.cluster.local
|
||||
# access: proxy
|
||||
# isDefault: true
|
|
@ -1,107 +0,0 @@
|
|||
|
||||
logLevel: 4
|
||||
|
||||
metricsRelistInterval: 1m
|
||||
|
||||
listenPort: 6443
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
priorityClassName: ""
|
||||
|
||||
# Url to access prometheus
|
||||
prometheus:
|
||||
# Value is templated
|
||||
url: http://prometheus.default.svc
|
||||
port: 9090
|
||||
path: ""
|
||||
|
||||
replicas: 1
|
||||
|
||||
# SecurityContext of the container
|
||||
# ref. https://kubernetes.io/docs/tasks/configure-pod-container/security-context
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop: ["ALL"]
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 10001
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
|
||||
rbac:
|
||||
# Specifies whether RBAC resources should be created
|
||||
create: true
|
||||
# Specifies if a Cluster Role should be used for the Auth Reader
|
||||
useAuthReaderClusterRole: false
|
||||
externalMetrics:
|
||||
resources: ["*"]
|
||||
customMetrics:
|
||||
resources: ["*"]
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name:
|
||||
# ServiceAccount annotations.
|
||||
# Use case: AWS EKS IAM roles for service accounts
|
||||
# ref: https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html
|
||||
annotations: {}
|
||||
|
||||
# Configure liveness probe
|
||||
# https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Probe
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: https
|
||||
scheme: HTTPS
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 5
|
||||
|
||||
# Configure readiness probe
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: https
|
||||
scheme: HTTPS
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 5
|
||||
|
||||
rules:
|
||||
default: true
|
||||
|
||||
custom: []
|
||||
|
||||
# Mounts a configMap with pre-generated rules for use. Overrides the
|
||||
# default, custom, external and resource entries
|
||||
existing:
|
||||
|
||||
external: []
|
||||
|
||||
service:
|
||||
annotations: {}
|
||||
port: 443
|
||||
type: ClusterIP
|
||||
# clusterIP: 1.2.3.4
|
||||
ipDualStack:
|
||||
enabled: false
|
||||
ipFamilies: ["IPv6", "IPv4"]
|
||||
ipFamilyPolicy: "PreferDualStack"
|
||||
|
||||
# Set environment variables from secrets, configmaps or by setting them as name/value
|
||||
env: []
|
||||
|
||||
# Deployment strategy type
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 25%
|
||||
maxSurge: 25%
|
||||
|
||||
certManager:
|
||||
enabled: false
|
||||
caCertDuration: 43800h0m0s
|
||||
certDuration: 8760h0m0s
|
|
@ -1,37 +0,0 @@
|
|||
# Crossplane Integrations for Backstage
|
||||
|
||||
`idpBuilder` is extensible to launch custom Crossplane patterns using package extensions.
|
||||
|
||||
Please use the below command to deploy an IDP reference implementation with an Argo application for preparing up the setup for terraform integrations:
|
||||
|
||||
```bash
|
||||
idpbuilder create \
|
||||
--use-path-routing \
|
||||
--package https://github.com/cnoe-io/stacks//ref-implementation \
|
||||
--package https://github.com/cnoe-io/stacks//crossplane-integrations
|
||||
```
|
||||
## What is installed?
|
||||
|
||||
1. Crossplane Runtime
|
||||
1. AWS providers
|
||||
1. Basic Compositions
|
||||
|
||||
This needs your credentials for this to work. Follow the Crossplane installation documentation on how to add your credentials.
|
||||
|
||||
## Application with cloud resources.
|
||||
|
||||
With this integration, we can deploy an application with cloud resources using Backstage templates from the reference implementation, together with Crossplane integrations.
|
||||
|
||||
In this example, we will create an application with a S3 Bucket.
|
||||
|
||||
Choose a template named `App with S3 bucket`, type `demo3` as the name, then choose a region to create this bucket in.
|
||||
|
||||
Once you click the create button, you will have a very similar setup as the basic example.
|
||||
The only difference is we now have a resource for a S3 Bucket which is managed by Crossplane.
|
||||
|
||||
Note that Bucket is **not** created because Crossplane doesn't have necessary credentials to do so.
|
||||
If you'd like it to actually create a bucket, update [the credentials secret file](crossplane-providers/provider-secret.yaml), then run `idpbuilder create --package https://github.com/cnoe-io/stacks//ref-implementation`.
|
||||
|
||||
In this example, we used Crossplane to provision resources, but you can use other cloud resource management tools such as Terraform instead.
|
||||
|
||||
Regardless of your tool choice, concepts are the same. We use Backstage as the templating mechanism and UI for users, then use Kubernetes API with GitOps to deploy resources.
|
|
@ -1,22 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane-compositions
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot
|
||||
targetRevision: HEAD
|
||||
path: "stacks/crossplane-integrations/crossplane-compositions"
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: crossplane-system
|
||||
syncPolicy:
|
||||
automated: {}
|
|
@ -1,76 +0,0 @@
|
|||
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: CompositeResourceDefinition
|
||||
metadata:
|
||||
name: xobjectstorages.awsblueprints.io
|
||||
spec:
|
||||
claimNames:
|
||||
kind: ObjectStorage
|
||||
plural: objectstorages
|
||||
group: awsblueprints.io
|
||||
names:
|
||||
kind: XObjectStorage
|
||||
plural: xobjectstorages
|
||||
connectionSecretKeys:
|
||||
- region
|
||||
- bucket-name
|
||||
- s3-put-policy
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
referenceable: true
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
spec:
|
||||
description: ObjectStorageSpec defines the desired state of ObjectStorage
|
||||
properties:
|
||||
resourceConfig:
|
||||
description: ResourceConfig defines general properties of this AWS
|
||||
resource.
|
||||
properties:
|
||||
deletionPolicy:
|
||||
description: Defaults to Delete
|
||||
enum:
|
||||
- Delete
|
||||
- Orphan
|
||||
type: string
|
||||
name:
|
||||
description: Set the name of this resource in AWS to the value
|
||||
provided by this field.
|
||||
type: string
|
||||
providerConfigName:
|
||||
type: string
|
||||
region:
|
||||
type: string
|
||||
tags:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- key
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- providerConfigName
|
||||
- region
|
||||
- tags
|
||||
type: object
|
||||
required:
|
||||
- resourceConfig
|
||||
type: object
|
||||
status:
|
||||
description: ObjectStorageStatus defines the observed state of ObjectStorage
|
||||
properties:
|
||||
bucketName:
|
||||
type: string
|
||||
bucketArn:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
|
@ -1,80 +0,0 @@
|
|||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: Composition
|
||||
metadata:
|
||||
name: s3bucket.awsblueprints.io
|
||||
labels:
|
||||
awsblueprints.io/provider: aws
|
||||
awsblueprints.io/environment: dev
|
||||
s3.awsblueprints.io/configuration: standard
|
||||
spec:
|
||||
writeConnectionSecretsToNamespace: crossplane-system
|
||||
compositeTypeRef:
|
||||
apiVersion: awsblueprints.io/v1alpha1
|
||||
kind: XObjectStorage
|
||||
patchSets:
|
||||
- name: common-fields
|
||||
patches:
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.providerConfigName
|
||||
toFieldPath: spec.providerConfigRef.name
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.deletionPolicy
|
||||
toFieldPath: spec.deletionPolicy
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.region
|
||||
toFieldPath: spec.forProvider.region
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.name
|
||||
toFieldPath: metadata.annotations[crossplane.io/external-name]
|
||||
resources:
|
||||
- name: s3-bucket
|
||||
connectionDetails:
|
||||
- name: bucket-name
|
||||
fromConnectionSecretKey: endpoint
|
||||
- name: region
|
||||
fromConnectionSecretKey: region
|
||||
base:
|
||||
apiVersion: s3.aws.crossplane.io/v1beta1
|
||||
kind: Bucket
|
||||
spec:
|
||||
deletionPolicy: Delete
|
||||
forProvider:
|
||||
objectOwnership: BucketOwnerEnforced
|
||||
publicAccessBlockConfiguration:
|
||||
blockPublicPolicy: true
|
||||
restrictPublicBuckets: true
|
||||
serverSideEncryptionConfiguration:
|
||||
rules:
|
||||
- applyServerSideEncryptionByDefault:
|
||||
sseAlgorithm: AES256
|
||||
tagging:
|
||||
tagSet:
|
||||
- key: cnoe
|
||||
value: "1"
|
||||
patches:
|
||||
- type: PatchSet
|
||||
patchSetName: common-fields
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.tags
|
||||
toFieldPath: spec.forProvider.tagging.tagSet
|
||||
policy:
|
||||
mergeOptions:
|
||||
appendSlice: true
|
||||
keepMapValues: true
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.region
|
||||
toFieldPath: spec.forProvider.locationConstraint
|
||||
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
|
||||
toFieldPath: spec.writeConnectionSecretToRef.namespace
|
||||
- type: ToCompositeFieldPath
|
||||
fromFieldPath: metadata.annotations[crossplane.io/external-name]
|
||||
toFieldPath: status.bucketName
|
||||
- type: ToCompositeFieldPath
|
||||
fromFieldPath: status.atProvider.arn
|
||||
toFieldPath: status.bucketArn
|
||||
- fromFieldPath: metadata.uid
|
||||
toFieldPath: spec.writeConnectionSecretToRef.name
|
||||
transforms:
|
||||
- type: string
|
||||
string:
|
||||
fmt: "%s-bucket"
|
|
@ -1,22 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane-providers
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot
|
||||
targetRevision: HEAD
|
||||
path: "stacks/crossplane-integrations/crossplane-providers"
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: crossplane-system
|
||||
syncPolicy:
|
||||
automated: {}
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
|
@ -1,6 +0,0 @@
|
|||
apiVersion: pkg.crossplane.io/v1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: provider-aws
|
||||
spec:
|
||||
package: xpkg.upbound.io/crossplane-contrib/provider-aws:v0.48.0
|
|
@ -1,14 +0,0 @@
|
|||
apiVersion: aws.crossplane.io/v1beta1
|
||||
kind: ProviderConfig
|
||||
metadata:
|
||||
name: default
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "20"
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
spec:
|
||||
credentials:
|
||||
source: Secret
|
||||
secretRef:
|
||||
namespace: crossplane-system
|
||||
name: local-secret
|
||||
key: creds
|
|
@ -1,11 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: local-secret
|
||||
namespace: crossplane-system
|
||||
stringData:
|
||||
creds: |
|
||||
[default]
|
||||
aws_access_key_id = replaceme
|
||||
aws_secret_access_key = replaceme
|
||||
aws_session_token = replacemeifneeded
|
|
@ -1,26 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: 'https://charts.crossplane.io/stable'
|
||||
targetRevision: 1.15.0
|
||||
helm:
|
||||
releaseName: crossplane
|
||||
chart: crossplane
|
||||
destination:
|
||||
server: 'https://kubernetes.default.svc'
|
||||
namespace: crossplane-system
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
|
@ -1,17 +0,0 @@
|
|||
# Localstack Integration
|
||||
|
||||
Please use the below command to deploy an IDP reference implementation with an Argo application that adds Localstack, as well as integrating with Crossplane.
|
||||
|
||||
```bash
|
||||
idpbuilder create \
|
||||
--use-path-routing \
|
||||
--package https://github.com/cnoe-io/stacks//ref-implementation \
|
||||
--package https://github.com/cnoe-io/stacks//localstack-integration
|
||||
```
|
||||
|
||||
As you see above, this add-on to `idpbuilder` has a dependency on the [reference implementation](../ref-implementation/). This command primarily does the following:
|
||||
|
||||
1. Installs `localstack` helmchart as an `argo` application.
|
||||
2. Adds localstack crossplane ProviderConfig, targetting localstack
|
||||
|
||||
Once the custom package is installed, localstack can be used from the backstage template `app-with-aws-resources`, by changing the `providerConfigName` during the bucket configuration page from `default` to `localstack`.
|
|
@ -1,22 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane-provider-localstack
|
||||
namespace: argocd
|
||||
labels:
|
||||
example: localstack-integration
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.cnoe.localtest.me/giteaAdmin/edfbuilder-shoot
|
||||
targetRevision: HEAD
|
||||
path: "stacks/localstack-integration/crossplane-provider-localstack"
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: crossplane-system
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
|
@ -1,19 +0,0 @@
|
|||
apiVersion: aws.crossplane.io/v1beta1
|
||||
kind: ProviderConfig
|
||||
metadata:
|
||||
name: localstack
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "20"
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
spec:
|
||||
credentials:
|
||||
source: Secret
|
||||
secretRef:
|
||||
namespace: crossplane-system
|
||||
name: local-secret
|
||||
key: creds
|
||||
endpoint:
|
||||
hostnameImmutable: true
|
||||
url:
|
||||
type: Static
|
||||
static: http://localstack.localstack.svc.cluster.local:4566
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: localstack
|
||||
namespace: argocd
|
||||
labels:
|
||||
example: localstack-integration
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://localstack.github.io/helm-charts
|
||||
targetRevision: 0.6.12
|
||||
chart: localstack
|
||||
helm:
|
||||
releaseName: localstack
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: localstack
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
Loading…
Reference in a new issue